From 3901cc01a6654a52fb9089a59309620a223c5e11 Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Mon, 8 Aug 2011 14:37:21 +0300 Subject: [PATCH] OSK - design integration --- resources/forms/preferences.ui | 389 +++++++++--------- .../images/virtual.keyboard/29/backspace.png | Bin 0 -> 192 bytes .../images/virtual.keyboard/29/capslock.png | Bin 0 -> 245 bytes .../virtual.keyboard/29/centre-active.png | Bin 0 -> 165 bytes .../virtual.keyboard/29/centre-passive.png | Bin 0 -> 170 bytes .../virtual.keyboard/29/left-active.png | Bin 0 -> 355 bytes .../virtual.keyboard/29/left-passive.png | Bin 0 -> 366 bytes .../virtual.keyboard/29/right-active.png | Bin 0 -> 421 bytes .../virtual.keyboard/29/right-passive.png | Bin 0 -> 459 bytes resources/images/virtual.keyboard/29/tab.png | Bin 0 -> 291 bytes .../images/virtual.keyboard/41/backspace.png | Bin 0 -> 252 bytes .../images/virtual.keyboard/41/capslock.png | Bin 0 -> 261 bytes .../virtual.keyboard/41/centre-active.png | Bin 0 -> 181 bytes .../virtual.keyboard/41/centre-passive.png | Bin 0 -> 189 bytes .../virtual.keyboard/41/left-active.png | Bin 0 -> 404 bytes .../virtual.keyboard/41/left-passive.png | Bin 0 -> 409 bytes .../virtual.keyboard/41/right-active.png | Bin 0 -> 478 bytes .../virtual.keyboard/41/right-passive.png | Bin 0 -> 493 bytes resources/images/virtual.keyboard/41/tab.png | Bin 0 -> 395 bytes resources/sankore.qrc | 22 + src/board/UBBoardPaletteManager.cpp | 21 +- src/core/UBPreferencesController.cpp | 7 +- src/core/UBSettings.cpp | 17 +- src/core/UBSettings.h | 16 +- src/desktop/UBDesktopAnnotationController.cpp | 31 +- src/desktop/UBDesktopAnnotationController.h | 17 +- src/desktop/UBDesktopPalette.cpp | 18 +- src/desktop/UBDesktopPalette.h | 16 +- src/gui/UBActionPalette.cpp | 45 +- src/gui/UBActionPalette.h | 21 +- src/gui/UBFloatingPalette.cpp | 22 +- src/gui/UBFloatingPalette.h | 16 +- src/gui/UBKeyboardPalette.cpp | 375 +++++++++++------ src/gui/UBKeyboardPalette.h | 91 ++-- src/gui/UBKeyboardPalette_win.cpp | 37 +- 35 files changed, 637 insertions(+), 524 deletions(-) create mode 100644 resources/images/virtual.keyboard/29/backspace.png create mode 100644 resources/images/virtual.keyboard/29/capslock.png create mode 100644 resources/images/virtual.keyboard/29/centre-active.png create mode 100644 resources/images/virtual.keyboard/29/centre-passive.png create mode 100644 resources/images/virtual.keyboard/29/left-active.png create mode 100644 resources/images/virtual.keyboard/29/left-passive.png create mode 100644 resources/images/virtual.keyboard/29/right-active.png create mode 100644 resources/images/virtual.keyboard/29/right-passive.png create mode 100644 resources/images/virtual.keyboard/29/tab.png create mode 100644 resources/images/virtual.keyboard/41/backspace.png create mode 100644 resources/images/virtual.keyboard/41/capslock.png create mode 100644 resources/images/virtual.keyboard/41/centre-active.png create mode 100644 resources/images/virtual.keyboard/41/centre-passive.png create mode 100644 resources/images/virtual.keyboard/41/left-active.png create mode 100644 resources/images/virtual.keyboard/41/left-passive.png create mode 100644 resources/images/virtual.keyboard/41/right-active.png create mode 100644 resources/images/virtual.keyboard/41/right-passive.png create mode 100644 resources/images/virtual.keyboard/41/tab.png diff --git a/resources/forms/preferences.ui b/resources/forms/preferences.ui index 86686f3c..8f77073c 100644 --- a/resources/forms/preferences.ui +++ b/resources/forms/preferences.ui @@ -315,13 +315,6 @@ - - - - Minimize keyboard when not active - - - @@ -626,9 +619,9 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#1a1a1a;">The OpenSSL toolkit stays under a dual license, i.e. both the conditions of the OpenSSL License and the original SSLeay license apply to the toolkit.</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#1a1a1a;">See below for the actual license texts. Actually both licenses are BSD-style Open Source licenses. In case of any license issues related to OpenSSL please contact </span><a href="mailto:openssl-core@openssl.org"><span style=" text-decoration: underline; color:#0000ff;">openssl-core@openssl.org</span></a><span style=" color:#1a1a1a;">.</span> </p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;">The OpenSSL toolkit stays under a dual license, i.e. both the conditions of the OpenSSL License and the original SSLeay license apply to the toolkit.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;">See below for the actual license texts. Actually both licenses are BSD-style Open Source licenses. In case of any license issues related to OpenSSL please contact </span><a href="mailto:openssl-core@openssl.org"><span style=" font-family:'Ubuntu'; font-size:9pt; text-decoration: underline; color:#0000ff;">openssl-core@openssl.org</span></a><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;">.</span><span style=" font-family:'Ubuntu'; font-size:9pt;"> </span></p></body></html> @@ -645,8 +638,8 @@ p, li { white-space: pre-wrap; } <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;"> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#1a1a1a;">Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler</span><span style=" font-size:12pt;"><br /><br /></span><span style=" color:#1a1a1a;"> This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.</span><br /><br /><span style=" color:#1a1a1a;"> Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:</span><br /><br /><span style=" color:#1a1a1a;"> 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.</span><br /><span style=" color:#1a1a1a;"> 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.</span><br /><span style=" color:#1a1a1a;"> 3. This notice may not be removed or altered from any source distribution.</span> </p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;">Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler</span><span style=" font-family:'Ubuntu'; font-size:12pt;"><br /><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;"> This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.</span><span style=" font-family:'Ubuntu'; font-size:9pt;"><br /><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;"> Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:</span><span style=" font-family:'Ubuntu'; font-size:9pt;"><br /><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;"> 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.</span><span style=" font-family:'Ubuntu'; font-size:9pt;"><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;"> 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.</span><span style=" font-family:'Ubuntu'; font-size:9pt;"><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;"> 3. This notice may not be removed or altered from any source distribution.</span><span style=" font-family:'Ubuntu'; font-size:9pt;"> </span></p></body></html> @@ -663,8 +656,8 @@ p, li { white-space: pre-wrap; } <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;"> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#000000;">Xpdf is licensed under the GNU General Public License (GPL), version 2.</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt; color:#000000;">Xpdf is licensed under the GNU General Public License (GPL), version 2.</span></p></body></html> @@ -681,8 +674,8 @@ p, li { white-space: pre-wrap; } <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;"> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">GNU Library or Lesser General Public License (LGPL), zlib/libpng License</p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">GNU Library or Lesser General Public License (LGPL), zlib/libpng License</span></p></body></html> @@ -699,178 +692,178 @@ p, li { white-space: pre-wrap; } <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;"> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">SANKORE3.1 is free software: you can redistribute it and/or modify it under the terms of the Lesser GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. You can find the source code of this software at &lt;https://adullact.net/projects/sankore/&gt;</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">SANKORE3.1 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 Lesser GNU General Public License below for more details.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> GNU LESSER GENERAL PUBLIC LICENSE</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Version 3, 29 June 2007</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Copyright (C) 2007 Free Software Foundation, Inc. &lt;http://fsf.org/&gt;</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Everyone is permitted to copy and distribute verbatim copies</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> of this license document, but changing it is not allowed.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> This version of the GNU Lesser General Public License incorporates</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the terms and conditions of version 3 of the GNU General Public</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">License, supplemented by the additional permissions listed below.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 0. Additional Definitions.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> As used herein, &quot;this License&quot; refers to version 3 of the GNU Lesser</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">General Public License, and the &quot;GNU GPL&quot; refers to version 3 of the GNU</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">General Public License.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> &quot;The Library&quot; refers to a covered work governed by this License,</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">other than an Application or a Combined Work as defined below.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> An &quot;Application&quot; is any work that makes use of an interface provided</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">by the Library, but which is not otherwise based on the Library.</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Defining a subclass of a class defined by the Library is deemed a mode</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of using an interface provided by the Library.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> A &quot;Combined Work&quot; is a work produced by combining or linking an</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Application with the Library. The particular version of the Library</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">with which the Combined Work was made is also called the &quot;Linked</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Version&quot;.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> The &quot;Minimal Corresponding Source&quot; for a Combined Work means the</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Corresponding Source for the Combined Work, excluding any source code</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">for portions of the Combined Work that, considered in isolation, are</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">based on the Application, and not on the Linked Version.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> The &quot;Corresponding Application Code&quot; for a Combined Work means the</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">object code and/or source code for the Application, including any data</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">and utility programs needed for reproducing the Combined Work from the</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Application, but excluding the System Libraries of the Combined Work.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 1. Exception to Section 3 of the GNU GPL.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> You may convey a covered work under sections 3 and 4 of this License</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">without being bound by section 3 of the GNU GPL.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 2. Conveying Modified Versions.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> If you modify a copy of the Library, and, in your modifications, a</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">facility refers to a function or data to be supplied by an Application</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">that uses the facility (other than as an argument passed when the</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">facility is invoked), then you may convey a copy of the modified</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">version:</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a) under this License, provided that you make a good faith effort to</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> ensure that, in the event an Application does not supply the</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> function or data, the facility still operates, and performs</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> whatever part of its purpose remains meaningful, or</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> b) under the GNU GPL, with none of the additional permissions of</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> this License applicable to that copy.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 3. Object Code Incorporating Material from Library Header Files.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> The object code form of an Application may incorporate material from</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">a header file that is part of the Library. You may convey such object</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">code under terms of your choice, provided that, if the incorporated</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">material is not limited to numerical parameters, data structure</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">layouts and accessors, or small macros, inline functions and templates</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(ten or fewer lines in length), you do both of the following:</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a) Give prominent notice with each copy of the object code that the</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Library is used in it and that the Library and its use are</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> covered by this License.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> b) Accompany the object code with a copy of the GNU GPL and this license</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> document.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 4. Combined Works.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> You may convey a Combined Work under terms of your choice that,</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">taken together, effectively do not restrict modification of the</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">portions of the Library contained in the Combined Work and reverse</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">engineering for debugging such modifications, if you also do each of</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the following:</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a) Give prominent notice with each copy of the Combined Work that</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> the Library is used in it and that the Library and its use are</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> covered by this License.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> b) Accompany the Combined Work with a copy of the GNU GPL and this license</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> document.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> c) For a Combined Work that displays copyright notices during</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> execution, include the copyright notice for the Library among</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> these notices, as well as a reference directing the user to the</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> copies of the GNU GPL and this license document.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> d) Do one of the following:</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 0) Convey the Minimal Corresponding Source under the terms of this</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> License, and the Corresponding Application Code in a form</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> suitable for, and under terms that permit, the user to</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> recombine or relink the Application with a modified version of</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> the Linked Version to produce a modified Combined Work, in the</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> manner specified by section 6 of the GNU GPL for conveying</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Corresponding Source.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 1) Use a suitable shared library mechanism for linking with the</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Library. A suitable mechanism is one that (a) uses at run time</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a copy of the Library already present on the user's computer</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> system, and (b) will operate properly with a modified version</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> of the Library that is interface-compatible with the Linked</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Version.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> e) Provide Installation Information, but only if you would otherwise</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> be required to provide such information under section 6 of the</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> GNU GPL, and only to the extent that such information is</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> necessary to install and execute a modified version of the</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Combined Work produced by recombining or relinking the</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Application with a modified version of the Linked Version. (If</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> you use option 4d0, the Installation Information must accompany</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> the Minimal Corresponding Source and Corresponding Application</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Code. If you use option 4d1, you must provide the Installation</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Information in the manner specified by section 6 of the GNU GPL</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> for conveying Corresponding Source.)</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 5. Combined Libraries.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> You may place library facilities that are a work based on the</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Library side by side in a single library together with other library</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">facilities that are not Applications and are not covered by this</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">License, and convey such a combined library under terms of your</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">choice, if you do both of the following:</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a) Accompany the combined library with a copy of the same work based</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> on the Library, uncombined with any other library facilities,</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> conveyed under the terms of this License.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> b) Give prominent notice with the combined library that part of it</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> is a work based on the Library, and explaining where to find the</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> accompanying uncombined form of the same work.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 6. Revised Versions of the GNU Lesser General Public License.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> The Free Software Foundation may publish revised and/or new versions</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of the GNU Lesser General Public License from time to time. Such new</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">versions will be similar in spirit to the present version, but may</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">differ in detail to address new problems or concerns.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Each version is given a distinguishing version number. If the</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Library as you received it specifies that a certain numbered version</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of the GNU Lesser General Public License &quot;or any later version&quot;</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">applies to it, you have the option of following the terms and</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">conditions either of that published version or of any later version</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">published by the Free Software Foundation. If the Library as you</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">received it does not specify a version number of the GNU Lesser</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">General Public License, you may choose any version of the GNU Lesser</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">General Public License ever published by the Free Software Foundation.</p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> If the Library as you received it specifies that a proxy can decide</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">whether future versions of the GNU Lesser General Public License shall</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">apply, that proxy's public statement of acceptance of any version is</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">permanent authorization for you to choose that version for the</p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Library.</p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">SANKORE3.1 is free software: you can redistribute it and/or modify it under the terms of the Lesser GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. You can find the source code of this software at &lt;https://adullact.net/projects/sankore/&gt;</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">SANKORE3.1 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 Lesser GNU General Public License below for more details.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> GNU LESSER GENERAL PUBLIC LICENSE</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Version 3, 29 June 2007</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Copyright (C) 2007 Free Software Foundation, Inc. &lt;http://fsf.org/&gt;</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Everyone is permitted to copy and distribute verbatim copies</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> of this license document, but changing it is not allowed.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> This version of the GNU Lesser General Public License incorporates</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">the terms and conditions of version 3 of the GNU General Public</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">License, supplemented by the additional permissions listed below.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> 0. Additional Definitions.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> As used herein, &quot;this License&quot; refers to version 3 of the GNU Lesser</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">General Public License, and the &quot;GNU GPL&quot; refers to version 3 of the GNU</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">General Public License.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> &quot;The Library&quot; refers to a covered work governed by this License,</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">other than an Application or a Combined Work as defined below.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> An &quot;Application&quot; is any work that makes use of an interface provided</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">by the Library, but which is not otherwise based on the Library.</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">Defining a subclass of a class defined by the Library is deemed a mode</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">of using an interface provided by the Library.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> A &quot;Combined Work&quot; is a work produced by combining or linking an</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">Application with the Library. The particular version of the Library</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">with which the Combined Work was made is also called the &quot;Linked</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">Version&quot;.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> The &quot;Minimal Corresponding Source&quot; for a Combined Work means the</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">Corresponding Source for the Combined Work, excluding any source code</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">for portions of the Combined Work that, considered in isolation, are</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">based on the Application, and not on the Linked Version.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> The &quot;Corresponding Application Code&quot; for a Combined Work means the</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">object code and/or source code for the Application, including any data</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">and utility programs needed for reproducing the Combined Work from the</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">Application, but excluding the System Libraries of the Combined Work.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> 1. Exception to Section 3 of the GNU GPL.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> You may convey a covered work under sections 3 and 4 of this License</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">without being bound by section 3 of the GNU GPL.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> 2. Conveying Modified Versions.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> If you modify a copy of the Library, and, in your modifications, a</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">facility refers to a function or data to be supplied by an Application</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">that uses the facility (other than as an argument passed when the</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">facility is invoked), then you may convey a copy of the modified</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">version:</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> a) under this License, provided that you make a good faith effort to</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> ensure that, in the event an Application does not supply the</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> function or data, the facility still operates, and performs</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> whatever part of its purpose remains meaningful, or</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> b) under the GNU GPL, with none of the additional permissions of</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> this License applicable to that copy.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> 3. Object Code Incorporating Material from Library Header Files.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> The object code form of an Application may incorporate material from</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">a header file that is part of the Library. You may convey such object</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">code under terms of your choice, provided that, if the incorporated</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">material is not limited to numerical parameters, data structure</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">layouts and accessors, or small macros, inline functions and templates</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">(ten or fewer lines in length), you do both of the following:</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> a) Give prominent notice with each copy of the object code that the</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Library is used in it and that the Library and its use are</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> covered by this License.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> b) Accompany the object code with a copy of the GNU GPL and this license</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> document.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> 4. Combined Works.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> You may convey a Combined Work under terms of your choice that,</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">taken together, effectively do not restrict modification of the</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">portions of the Library contained in the Combined Work and reverse</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">engineering for debugging such modifications, if you also do each of</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">the following:</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> a) Give prominent notice with each copy of the Combined Work that</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> the Library is used in it and that the Library and its use are</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> covered by this License.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> b) Accompany the Combined Work with a copy of the GNU GPL and this license</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> document.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> c) For a Combined Work that displays copyright notices during</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> execution, include the copyright notice for the Library among</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> these notices, as well as a reference directing the user to the</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> copies of the GNU GPL and this license document.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> d) Do one of the following:</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> 0) Convey the Minimal Corresponding Source under the terms of this</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> License, and the Corresponding Application Code in a form</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> suitable for, and under terms that permit, the user to</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> recombine or relink the Application with a modified version of</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> the Linked Version to produce a modified Combined Work, in the</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> manner specified by section 6 of the GNU GPL for conveying</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Corresponding Source.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> 1) Use a suitable shared library mechanism for linking with the</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Library. A suitable mechanism is one that (a) uses at run time</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> a copy of the Library already present on the user's computer</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> system, and (b) will operate properly with a modified version</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> of the Library that is interface-compatible with the Linked</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Version.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> e) Provide Installation Information, but only if you would otherwise</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> be required to provide such information under section 6 of the</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> GNU GPL, and only to the extent that such information is</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> necessary to install and execute a modified version of the</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Combined Work produced by recombining or relinking the</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Application with a modified version of the Linked Version. (If</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> you use option 4d0, the Installation Information must accompany</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> the Minimal Corresponding Source and Corresponding Application</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Code. If you use option 4d1, you must provide the Installation</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Information in the manner specified by section 6 of the GNU GPL</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> for conveying Corresponding Source.)</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> 5. Combined Libraries.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> You may place library facilities that are a work based on the</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">Library side by side in a single library together with other library</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">facilities that are not Applications and are not covered by this</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">License, and convey such a combined library under terms of your</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">choice, if you do both of the following:</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> a) Accompany the combined library with a copy of the same work based</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> on the Library, uncombined with any other library facilities,</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> conveyed under the terms of this License.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> b) Give prominent notice with the combined library that part of it</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> is a work based on the Library, and explaining where to find the</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> accompanying uncombined form of the same work.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> 6. Revised Versions of the GNU Lesser General Public License.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> The Free Software Foundation may publish revised and/or new versions</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">of the GNU Lesser General Public License from time to time. Such new</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">versions will be similar in spirit to the present version, but may</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">differ in detail to address new problems or concerns.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> Each version is given a distinguishing version number. If the</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">Library as you received it specifies that a certain numbered version</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">of the GNU Lesser General Public License &quot;or any later version&quot;</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">applies to it, you have the option of following the terms and</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">conditions either of that published version or of any later version</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">published by the Free Software Foundation. If the Library as you</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">received it does not specify a version number of the GNU Lesser</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">General Public License, you may choose any version of the GNU Lesser</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">General Public License ever published by the Free Software Foundation.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;"> If the Library as you received it specifies that a proxy can decide</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">whether future versions of the GNU Lesser General Public License shall</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">apply, that proxy's public statement of acceptance of any version is</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">permanent authorization for you to choose that version for the</span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt;">Library.</span></p></body></html> @@ -894,13 +887,13 @@ p, li { white-space: pre-wrap; } <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;"> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#1a1a1a;">Sankoré 3.1 version , Copyright (C) 2010 Sankoré 3.1 comes with ABSOLUTELY NO WARRANTY.</span><br /><span style=" color:#35382a;"> </span></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#35382a;">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.</span></p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#35382a;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#35382a;">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.</span></p> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; color:#35382a;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#35382a;">You should have received a copy of the GNU General Public License along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt; color:#1a1a1a;">Sankoré 3.1 version , Copyright (C) 2010 Sankoré 3.1 comes with ABSOLUTELY NO WARRANTY.</span><span style=" font-family:'Ubuntu'; font-size:9pt;"><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#35382a;"> </span></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt; color:#35382a;">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.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt; color:#35382a;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt; color:#35382a;">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.</span></p> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:9pt; color:#35382a;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt; color:#35382a;">You should have received a copy of the GNU General Public License along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></p></body></html> @@ -910,9 +903,9 @@ p, li { white-space: pre-wrap; } <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:9pt; font-weight:400; font-style:normal;"> -<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt;"></p> -<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#3c3c3c;">GIPENA</span><br /><span style=" color:#3c3c3c;">Délégation Interministérielle à l'Education Numérique en Afrique</span><br /><span style=" color:#3c3c3c;">20 Avenue Ségur Paris 75007</span><br /><br /><span style=" color:#3c3c3c;">Téléphone : 01 43 17 68 08</span><br /><br /><span style=" color:#3c3c3c;">email: </span><a href="mailto:contact@sankore.org"><span style=" text-decoration: underline; color:#0000ff;">contact@sankore.org</span></a> </p></body></html> +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Ubuntu'; font-size:10pt;"></p> +<p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:9pt; color:#3c3c3c;">GIPENA</span><span style=" font-family:'Ubuntu'; font-size:9pt;"><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#3c3c3c;">Délégation Interministérielle à l'Education Numérique en Afrique</span><span style=" font-family:'Ubuntu'; font-size:9pt;"><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#3c3c3c;">20 Avenue Ségur Paris 75007</span><span style=" font-family:'Ubuntu'; font-size:9pt;"><br /><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#3c3c3c;">Téléphone : 01 43 17 68 08</span><span style=" font-family:'Ubuntu'; font-size:9pt;"><br /><br /></span><span style=" font-family:'Ubuntu'; font-size:9pt; color:#3c3c3c;">email: </span><a href="mailto:contact@sankore.org"><span style=" font-family:'Ubuntu'; font-size:9pt; text-decoration: underline; color:#0000ff;">contact@sankore.org</span></a><span style=" font-family:'Ubuntu'; font-size:9pt;"> </span></p></body></html> diff --git a/resources/images/virtual.keyboard/29/backspace.png b/resources/images/virtual.keyboard/29/backspace.png new file mode 100644 index 0000000000000000000000000000000000000000..f35a86e0ebbc4b897fe161c4eb185bb1c8c250d0 GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^fDSr z1<%~X^wgl##FWaylc_d9MM<76jv*Ddl79UEZ_h0BfFVg(fzMU=IDh~5PtPic zLSu!phDYxm3T@eh9Ha!+Ge6>Y_`}~o;0}$w2i^j)z4*}Q$iB}bZ0$3 literal 0 HcmV?d00001 diff --git a/resources/images/virtual.keyboard/29/capslock.png b/resources/images/virtual.keyboard/29/capslock.png new file mode 100644 index 0000000000000000000000000000000000000000..8390e560849bab4ab3a2b0f2ef935047e9c96da7 GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^JRmj)8<3o<+3y6TBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrH1%P4{$h45_%)GU+UDg8_$|_hSLy5>?w-=N_C~`^R#Zf*5yO zSfJ1(ruWQFT!lS;w>RnXF-&k?@w%ZSRp~HuyZb6<#t9B{4n5hc^<6UX4ErA~qlZ~n zqf-uL6)6@ewsg8iykEU6{@&KRHJ+DWJ`wWBw_0j(*!;2P&Uf0onZH^6B#ZJj>kI0G-I->FVdQ&MBb@0F&}wB>(^b literal 0 HcmV?d00001 diff --git a/resources/images/virtual.keyboard/29/centre-active.png b/resources/images/virtual.keyboard/29/centre-active.png new file mode 100644 index 0000000000000000000000000000000000000000..45fcfae70434e989a7dc71337d3663bf87904d50 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{Q!3HF=8QC&{lw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlB6m+0$B>F!Nin<2-qx$By1KG0J3rsv*r4|JzqyT_j2sFq z%F4<;+)0Ly(gnks(q3F&A1^uM-oDz?2fjS~%g%P}{r&yc3@j21iFu;pUN>LP1sciV M>FVdQ&MBb@0PV*%*#H0l literal 0 HcmV?d00001 diff --git a/resources/images/virtual.keyboard/29/centre-passive.png b/resources/images/virtual.keyboard/29/centre-passive.png new file mode 100644 index 0000000000000000000000000000000000000000..1dbe5deab8a48f06bbdd40308b69b22d28751739 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{Q!3HF=8QC&{lw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlA|Fo|$B>F!H9dxW2Mjovd*iS1e{T8WdRD;5z+g$s#-LXR zcTLuD4iyh;^M9Y<(r_Y$Q=>@XCdOoe;gwlgFB;y zCbVg(Xx)(_2Z*=>5=|&Lg-?J)$4!Dr7e`vl-`(ZCXFC|7NHmNzT4{D>-)Nu8vJ3-m ziEH9b=)Gs*F^Zzi<$R7fjuDcu)LL(@7YjJ&P*oM!xt=8nx~@Z6mZ+Ns0g1~{YgBbD zg0&U_#VryLN(~~x;~RY?x;>Fa=Z4t8^G@&G$@SCOkDWUG8Rzdey%Zk# zhf3qHf2t&3C!Bm8i^ryIG3`qt-ts(0+qAMDzGUai{&Npg7#P!&7Uy4yPanG-j+8hY za)~2N(}yIP-C6723u6kk-9F32)#_f>O}zRNU;ytht&_b%=?wq?002ovPDHLkV1mJO Bl#KuY literal 0 HcmV?d00001 diff --git a/resources/images/virtual.keyboard/29/left-passive.png b/resources/images/virtual.keyboard/29/left-passive.png new file mode 100644 index 0000000000000000000000000000000000000000..1338d9230a26f93f3d6ba11e6f5968a5cfc09e14 GIT binary patch literal 366 zcmV-!0g?WRP)E^7k{gOtY3bs^2e5L7lunUTaD{Y4&J_?!!wG^+f`II1cI|ag?1GiP#6G>*88nn- z84l-;v*O$erIZFwp69KjD1z_%5DXTs>#pNCh8Ft1hc;JX7(z0r>l(u_V8(C}1cABe zXnV%xt`GuE^M(EM1lx#@0@40!1nH0w)Yj3Ia;mA69C>u65uHH$;uz8ylNgYNb|jim zZbzcik^T)o{Wt%Hx29glXV-Ob9Oq~=#A{Vmyq_NvU8v2M?e-nJU5&15(YD{XNRs43 zO6iqlc_YLn+r24Anx>EQ`PF?<6nUP%HMH40n~uxngIPD{`d5Gf09v4&@DqkW$N&HU M07*qoM6N<$f|sG6zyJUM literal 0 HcmV?d00001 diff --git a/resources/images/virtual.keyboard/29/right-active.png b/resources/images/virtual.keyboard/29/right-active.png new file mode 100644 index 0000000000000000000000000000000000000000..a3fae30d77336caad3d4dd2953620166dba95dea GIT binary patch literal 421 zcmV;W0b2fvP)`Ymhp+h#7J_b^SkVsLIyZqc?Uz4cN6bVa~eg5wA=j64b<1^Rs#jag@tiR(Dd4P)%Zw(Yw(jxDVc9DQKDoq?A{9JhiAupi(shVDim)fj-^Q}wp>fy}s8YD8S`8<+hluExdxKW+~Uznxx? ziUY8jU7KfZ(K+Web+p@f+qytd0o}Q^Ssq;cD|TSr;k`%q8AK%Ut=QBX@^&|bMyIw{uW>WD+##BW=FP) P00000NkvXXu0mjfl$5q+ literal 0 HcmV?d00001 diff --git a/resources/images/virtual.keyboard/29/right-passive.png b/resources/images/virtual.keyboard/29/right-passive.png new file mode 100644 index 0000000000000000000000000000000000000000..cedaeb49b035cdee107cd0c3d410fd6af4f77651 GIT binary patch literal 459 zcmV;+0W|)JP)uTX^CID{r$ zB3a}BmLibM0iu+gg&S}NiqKQJp$(*`F$YMI4#|KO%ZWd65-&6U#Wt)o9`Bp?W@cxX zS(fDjzyj^D@Y&+i>9ji@kMBC2&YPkr50lA+ODTZ`VJJE00JxdY=b&lYwP6_V-1mL( zJP(p2fx%z^K@i+yrgK3uTFHJ7s;a_nx4XgZCFWq11=3@h5s;{&(*$Eh8|c$iQh<;% zks&#gz6AwXr6`4EO>u&9PwBEiy#|ph1uK|EB@CoRs!GzT(S+;8D}`(jusCbrrGm5C z85-@jQ~hZ-ALglDPJ(*J|BR%4j&g{s)m3#-`CZi7&4!m|cOJ(v2qE?)6o}A+ZujDoo&eu&H$b-8_^?{7U^KdV#egSV_XpPNH7u7)&~@GJ_xmpx_!hSP5%+pM z$285wa5#KM&_)Yc6h*iA6Qj`^cF=;^>`DF#FaVsryqKlh^7sG%002ovPDHLkV1n4W B%xeGu literal 0 HcmV?d00001 diff --git a/resources/images/virtual.keyboard/29/tab.png b/resources/images/virtual.keyboard/29/tab.png new file mode 100644 index 0000000000000000000000000000000000000000..424d84c8284e3dd918a72fbbba863acbe97114ad GIT binary patch literal 291 zcmV+;0o?wHP)+$x>B)WtS?%tI8H!S|W3# pmXau7!*|COw%Y0*S5)5u3;<+)N3%nT0to;B002ovPDHLkV1n8U}fi7AzZCsS>JispH`IEGZ*O8WEvzdf_EvNE&S0nQ^?4nMnjL>R`tgz zDqLfJRG`4enpBn*ae(`Xm_rW#k#!Dhn2+3V{9(@A+Q2Gdv(Leb=T(%N!atrP@(Vxh zZ~XLMa}$HavDuAnHO!mlGi{U?@MbbJ7WmJcRJXuJSyjwH$<;_>hs(l)ET4Kg1x_{( zJaZG%Q-e|yQz{EjrrH1%E%$VB45_%4)Wgx8;J|)5TrWK#CFKu)ic!+!^dJBK+q1E8 zc6W4aaaywRMDpbWhYts{B{{tOUty}4-N2Y5^)bugI>%=|KVFZv#2XybrcawRuSLHg zfngP&&IGp9Kkj8ryW%GnNO4b?!Ftrdv+cwOkDRz|6H_V+Po~-c6@`1cIEGZ*O8WQzzdiHjdGqeotEsxWvMoD5-`?1u_V2ge z#?FZoCpLC6a!lYbF;vm(INA}=^We}_1EFaO3G8!zuoc~(ZJsYN!){Og`2!#R{{9{y epvWwc!0@VG@`&T!O9?|6H_V+Po~-c6~%kHIEGZ*%IOK@YB1n&o?OLye#7mGJNHgB=Eyhyy;3Tg zm|=g2+n34s@U$Q!9wW=*wlDV-RTL$}opwB(zqCDm7O&nHlYRXQN)!5y)jSD%9hBWV lrN}WvG-Iu--f!Il4E--;j>_IXa0F--gQu&X%Q~loCIC|BMCAYg literal 0 HcmV?d00001 diff --git a/resources/images/virtual.keyboard/41/left-active.png b/resources/images/virtual.keyboard/41/left-active.png new file mode 100644 index 0000000000000000000000000000000000000000..4cd57dd33f08e5e29f5ee8c47a0b8276b554c947 GIT binary patch literal 404 zcmV;F0c-w=P)&5L_WE5-T_81vo$%n=@o%$;KtP01@3n#gH^k;_&S>R^`UU(u;qd-}C>rKkNG* z+<|GDnt*eDPl6W;m#7KG*ej8%>-ikQFa#vxQ3$cRSuBi0N(rbfQ4~Sjb+E50sOuWI zQtBZ<1W7+NsXC>AljBlR1x?!m35KM)q+?hTMvQeHO46TUwn}GAl4!Vt)!He;l(IKU zi;>jfh<_3d#h$mL$?hcb?Kxrh)(NLdu!{4EbV<{RoD=!a&fH6$d?U}zd!E?cLfiMU zX-ps4wh;n9c0W64ju!ZAc9Cqi-%ysN1&`zS9WhAquN<_aC<Ib;>ebahA9Oj81<5TU=Hqr)7*|Eqf`0Jl4hBg9Eil6IOM78pretr&9icl$)FVmX#WSucJ}9h+~MN2rSEb7!HT`Bw7$Mu}o7i4Fhc3 zh9pVuf*`md!X^k2lZuLv(jwlU9Bzp?Cs=|vE~r=(1@JynN?((wqE5!DJkNQNMUT!( z*<7Gs?Sx>8^>@>xK|m7`t0Ir}yuNlR|0XwVn@24+kGr9SIz%0|Wiz$KGq(3e>WNEw=TaUft`qT;MKa z2!T2G7MBHgmr@F3EI~;HozB@O5vpol?r4TolG-nZUhndmh#6sNhGAIuC0um7Z=UBp z5%I-pa~?&x<2X~V-+vhl29H#HCw#LKNpY?Bm}vzQKZKM?mnNJr(TkS)8GZ#A03C(y U!(GgH9smFU07*qoM6N<$f<52Q@&Et; literal 0 HcmV?d00001 diff --git a/resources/images/virtual.keyboard/41/right-passive.png b/resources/images/virtual.keyboard/41/right-passive.png new file mode 100644 index 0000000000000000000000000000000000000000..fb7c9ca642c6ac146a754b42e947e4bb9211cc27 GIT binary patch literal 493 zcmVHfX}B7{j4A zIhN1^XD|GMzhL4=_#b|RHxoVp61{riU|er#0x=ROw1q;;I#U+XE&_V6$;)=<^}U(d z?l7ek?0X8X>-MFTm%UzZYTNdE9LGunSQv(CI2=N^+XZyFYc`v=C<+iU3y|cT17{4{ z?KYH3rJF{hagXGbd!7fQ(Fmd_f@-x2lgZ>7iE~7eZ<0rgC8=OGo4J}i-IBgPrJS%@ zt%|s{a>_NKK(}^+5P|_q$@RJ=3ltKXgYBAmxEaWvm|<&>rfv491?(iv+Ugi%Kjbu( zMnQ&YzM#BsuAo0CRj%4&C$!&|r*<2dB-5(n1*v>1N0k3_@CSePp=-i-@7ynKd1^<^ z>)XC#i}R7TGM`7lIZG%+CL&1^nk*zj7z_qbE}wlMF{k0>LEr-cCmf`F#TmVLL}H9s z2+td*!z<+*R4SEc$8lOne3DvpI-SI_tbVQLJk{&<2MoR-zDUV1-<8fW)(Rqg#F9uG jU#P-Jf3(nh_!eLQwPNWF^D|!k00000NkvXXu0mjfDVx|R literal 0 HcmV?d00001 diff --git a/resources/images/virtual.keyboard/41/tab.png b/resources/images/virtual.keyboard/41/tab.png new file mode 100644 index 0000000000000000000000000000000000000000..9a752fa2361b12d6c10e4b06bd1c4f5529b29820 GIT binary patch literal 395 zcmV;60d)R}P)6I4+yiB-u5L#&yHLSXE_G8nARLVxZb9mM#hbx@n z26t#^8~b=oneP*`$m_#!=kjjMpKy$ddRh#qbm+!eKO0TlJucDJ!$MzQiw3yGIj+%x p+H#RP(b!}iVhc+Nw>Cxs3;>icr1gNi(wYDO002ovPDHLkV1l+es3ZUY literal 0 HcmV?d00001 diff --git a/resources/sankore.qrc b/resources/sankore.qrc index 89fbdaf7..6c721712 100644 --- a/resources/sankore.qrc +++ b/resources/sankore.qrc @@ -289,5 +289,27 @@ images/toolbar/hide.png images/toolbar/record.png images/libpalette/MoviesCategory.svg + + + images/virtual.keyboard/41/centre-passive.png + images/virtual.keyboard/41/left-passive.png + images/virtual.keyboard/41/right-passive.png + images/virtual.keyboard/41/centre-active.png + images/virtual.keyboard/41/left-active.png + images/virtual.keyboard/41/right-active.png + images/virtual.keyboard/41/backspace.png + images/virtual.keyboard/41/capslock.png + images/virtual.keyboard/41/tab.png + + images/virtual.keyboard/29/centre-passive.png + images/virtual.keyboard/29/left-passive.png + images/virtual.keyboard/29/right-passive.png + images/virtual.keyboard/29/centre-active.png + images/virtual.keyboard/29/left-active.png + images/virtual.keyboard/29/right-active.png + images/virtual.keyboard/29/backspace.png + images/virtual.keyboard/29/capslock.png + images/virtual.keyboard/29/tab.png + diff --git a/src/board/UBBoardPaletteManager.cpp b/src/board/UBBoardPaletteManager.cpp index 5e201cda..9ce06f63 100644 --- a/src/board/UBBoardPaletteManager.cpp +++ b/src/board/UBBoardPaletteManager.cpp @@ -1,16 +1,8 @@ /* - * 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. + * UBBoardPaletteManager.cpp * - * 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 . + * Created on: 3 nov. 2009 + * Author: Luc */ #include "UBBoardPaletteManager.h" @@ -132,7 +124,10 @@ void UBBoardPaletteManager::setupPalettes() mStylusPalette->show(); // always show stylus palette at startup if (UBPlatformUtils::hasVirtualKeyboard()) + { mKeyboardPalette = UBKeyboardPalette::create(0); + mKeyboardPalette->setParent(mContainer); + } mZoomPalette = new UBZoomPalette(mContainer); @@ -647,8 +642,8 @@ void UBBoardPaletteManager::panButtonReleased() void UBBoardPaletteManager::showVirtualKeyboard(bool show) { - if (mKeyboardPalette) - mKeyboardPalette->setVisible(show); + if (mKeyboardPalette) + mKeyboardPalette->setVisible(show); } void UBBoardPaletteManager::changeStylusPaletteOrientation(QVariant var) diff --git a/src/core/UBPreferencesController.cpp b/src/core/UBPreferencesController.cpp index e84c6031..8fb442cc 100644 --- a/src/core/UBPreferencesController.cpp +++ b/src/core/UBPreferencesController.cpp @@ -106,10 +106,8 @@ void UBPreferencesController::wire() // OSK preferences - mPreferencesUI->keyboardPaletteKeyButtonSize->addItem("16x16"); - mPreferencesUI->keyboardPaletteKeyButtonSize->addItem("24x24"); - mPreferencesUI->keyboardPaletteKeyButtonSize->addItem("32x32"); - connect(mPreferencesUI->keyboardPaletteAutoMinimize, SIGNAL(clicked(bool)), settings->boardKeyboardPaletteAutoMinimize, SLOT(setBool(bool))); + mPreferencesUI->keyboardPaletteKeyButtonSize->addItem("29x29"); + mPreferencesUI->keyboardPaletteKeyButtonSize->addItem("41x41"); connect(mPreferencesUI->keyboardPaletteKeyButtonSize, SIGNAL(currentIndexChanged(const QString &)), settings->boardKeyboardPaletteKeyBtnSize, SLOT(setString(const QString &))); @@ -169,7 +167,6 @@ void UBPreferencesController::init() mPreferencesUI->checkSoftwareUpdateAtLaunchCheckBox->setChecked(settings->appEnableAutomaticSoftwareUpdates->get().toBool()); // display tab - mPreferencesUI->keyboardPaletteAutoMinimize->setChecked(settings->boardKeyboardPaletteAutoMinimize->get().toBool()); for(int i=0; ikeyboardPaletteKeyButtonSize->count(); i++) if (mPreferencesUI->keyboardPaletteKeyButtonSize->itemText(i) == settings->boardKeyboardPaletteKeyBtnSize->get().toString()) diff --git a/src/core/UBSettings.cpp b/src/core/UBSettings.cpp index 754aeb20..5a7638d6 100644 --- a/src/core/UBSettings.cpp +++ b/src/core/UBSettings.cpp @@ -1,16 +1,9 @@ + /* - * 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. + * UBSettings.cpp * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * Created on: Oct 29, 2008 + * Author: luc */ #include "UBSettings.h" @@ -198,7 +191,7 @@ void UBSettings::init() boardUseHighResTabletEvent = new UBSetting(this, "Board", "UseHighResTabletEvent", true); - boardKeyboardPaletteAutoMinimize = new UBSetting(this, "Board", "KeyboardPaletteAutoMinimize", true); +// boardKeyboardPaletteAutoMinimize = new UBSetting(this, "Board", "KeyboardPaletteAutoMinimize", true); boardKeyboardPaletteKeyBtnSize = new UBSetting(this, "Board", "KeyboardPaletteKeyBtnSize", "24x24"); QStringList penLightBackgroundColors; diff --git a/src/core/UBSettings.h b/src/core/UBSettings.h index 405a616e..4c48705b 100644 --- a/src/core/UBSettings.h +++ b/src/core/UBSettings.h @@ -1,16 +1,8 @@ /* - * 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. + * UBSettings.h * - * 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 . + * Created on: Oct 29, 2008 + * Author: luc */ #ifndef UBSETTINGS_H_ @@ -236,7 +228,7 @@ class UBSettings : public QObject UBSetting* boardUseHighResTabletEvent; - UBSetting* boardKeyboardPaletteAutoMinimize; +// UBSetting* boardKeyboardPaletteAutoMinimize; UBSetting* boardKeyboardPaletteKeyBtnSize; UBColorListSetting* boardPenLightBackgroundColors; diff --git a/src/desktop/UBDesktopAnnotationController.cpp b/src/desktop/UBDesktopAnnotationController.cpp index 0cdfcd51..6010591d 100644 --- a/src/desktop/UBDesktopAnnotationController.cpp +++ b/src/desktop/UBDesktopAnnotationController.cpp @@ -1,16 +1,8 @@ /* - * 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. + * UNWindowController.cpp * - * 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 . + * Created on: Jan 15, 2009 + * Author: julienbachmann */ #include @@ -65,6 +57,7 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent) , mbArrowClicked(false) , mBoardStylusTool(UBStylusTool::Pen) , mDesktopStylusTool(UBStylusTool::Selector) + , mKeyboardPalette(0) { mTransparentDrawingView = new UBBoardView(UBApplication::boardController, 0); // deleted in UBDesktopAnnotationController::destructor @@ -92,12 +85,21 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent) mDesktopPalette = new UBDesktopPalette(mTransparentDrawingView); + if (UBPlatformUtils::hasVirtualKeyboard()) + { + mKeyboardPalette = UBKeyboardPalette::create(mTransparentDrawingView); + //mKeyboardPalette->setParent(mTransparentDrawingView); + } + connect(mDesktopPalette, SIGNAL(uniboardClick()), this, SLOT(goToUniboard())); connect(mDesktopPalette, SIGNAL(customClick()), this, SLOT(customCapture())); connect(mDesktopPalette, SIGNAL(windowClick()), this, SLOT(windowCapture())); connect(mDesktopPalette, SIGNAL(screenClick()), this, SLOT(screenCapture())); connect(mDesktopPalette, SIGNAL(maximized()), this, SLOT(onDesktopPaletteMaximized())); connect(mDesktopPalette, SIGNAL(minimizeStart(eMinimizedLocation)), this, SLOT(onDesktopPaletteMinimize())); + connect(UBApplication::mainWindow->actionVirtualKeyboard, SIGNAL(triggered(bool)), this, SLOT(showKeyboard(bool))); + +// connect(mDesktopPalette, SIGNAL(showVirtualKeyboard(bool)), this, SLOT()); connect(mTransparentDrawingView, SIGNAL(resized(QResizeEvent*)), this, SLOT(onTransparentWidgetResized())); @@ -143,6 +145,13 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent) onDesktopPaletteMaximized(); } +void UBDesktopAnnotationController::showKeyboard(bool show) +{ + mKeyboardPalette->setVisible(show); + +// mDesktopPalette->showVirtualKeyboard(show); +} + UBDesktopAnnotationController::~UBDesktopAnnotationController() { delete mTransparentDrawingScene; diff --git a/src/desktop/UBDesktopAnnotationController.h b/src/desktop/UBDesktopAnnotationController.h index 4a944761..d595c04a 100644 --- a/src/desktop/UBDesktopAnnotationController.h +++ b/src/desktop/UBDesktopAnnotationController.h @@ -1,16 +1,8 @@ /* - * 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. + * UNWindowController.h * - * 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 . + * Created on: Jan 15, 2009 + * Author: julienbachmann */ #ifndef UBUNINOTESWINDOWCONTROLLER_H_ @@ -70,6 +62,8 @@ class UBDesktopAnnotationController : public QObject void stylusToolChanged(int tool); void updateBackground(); + void showKeyboard(bool show); + signals: /** * This signal is emitted once the screenshot has been performed. This signal is also emitted when user @@ -106,6 +100,7 @@ class UBDesktopAnnotationController : public QObject void togglePropertyPalette(UBActionPalette* palette); UBDesktopPalette *mDesktopPalette; + UBKeyboardPalette *mKeyboardPalette; UBDesktopToolsPalette *mDesktopToolsPalette; UBDesktopPenPalette* mDesktopPenPalette; UBDesktopMarkerPalette* mDesktopMarkerPalette; diff --git a/src/desktop/UBDesktopPalette.cpp b/src/desktop/UBDesktopPalette.cpp index 2b1775a6..6ec00c8a 100644 --- a/src/desktop/UBDesktopPalette.cpp +++ b/src/desktop/UBDesktopPalette.cpp @@ -1,16 +1,8 @@ /* - * 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. + * UBDesktopPalette.cpp * - * 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 . + * Created on: Jan 9, 2009 + * Author: julienbachmann */ #include "UBDesktopPalette.h" @@ -49,12 +41,8 @@ UBDesktopPalette::UBDesktopPalette(QWidget *parent) #endif actions << UBApplication::mainWindow->actionPointer; - if (UBPlatformUtils::hasVirtualKeyboard()) - { actions << UBApplication::mainWindow->actionVirtualKeyboard; - connect(UBApplication::mainWindow->actionVirtualKeyboard, SIGNAL(toggled(bool)), this, SIGNAL(showVirtualKeyboard(bool))); - } mActionCustomSelect = new QAction(QIcon(":/images/toolbar/captureArea.png"), tr("Capture Part of the Screen"), this); connect(mActionCustomSelect, SIGNAL(triggered()), this, SIGNAL(customClick())); diff --git a/src/desktop/UBDesktopPalette.h b/src/desktop/UBDesktopPalette.h index 7a63fc67..83c01eab 100644 --- a/src/desktop/UBDesktopPalette.h +++ b/src/desktop/UBDesktopPalette.h @@ -1,16 +1,8 @@ /* - * 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. + * UNWindow.h * - * 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 . + * Created on: Jan 9, 2009 + * Author: julienbachmann */ #ifndef UBUNINOTESWINDOW_H_ @@ -41,7 +33,7 @@ class UBDesktopPalette : public UBActionPalette void customClick(); void windowClick(); void screenClick(); - void showVirtualKeyboard(bool); +// void showVirtualKeyboard(bool); public slots: diff --git a/src/gui/UBActionPalette.cpp b/src/gui/UBActionPalette.cpp index b799f4ba..5b6519d6 100644 --- a/src/gui/UBActionPalette.cpp +++ b/src/gui/UBActionPalette.cpp @@ -1,16 +1,8 @@ /* - * 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. + * UBActionPalette.cpp * - * 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 . + * Created on: 8 oct. 2009 + * Author: Luc */ #include "UBActionPalette.h" @@ -48,6 +40,8 @@ UBActionPalette::UBActionPalette(Qt::Corner corner, QWidget * parent, Qt::Orient void UBActionPalette::init(Qt::Orientation orientation) { + m_customCloseProcessing = false; + mButtonSize = QSize(32, 32); mIsClosable = false; mAutoClose = false; @@ -174,7 +168,7 @@ void UBActionPalette::updateLayout() , sLayoutContentMargin + border(), sLayoutContentMargin + border()); } - update(); + update(); } @@ -209,7 +203,9 @@ void UBActionPalette::paintEvent(QPaintEvent *event) void UBActionPalette::close() { - hide(); + if(!m_customCloseProcessing) + hide(); + emit closed(); } @@ -240,17 +236,18 @@ void UBActionPalette::clearLayout() QLayout* pLayout = layout(); if(NULL != pLayout) { - while(!pLayout->isEmpty()) - { - QLayoutItem* pItem = pLayout->itemAt(0); - QWidget* pW = pItem->widget(); - pLayout->removeItem(pItem); - delete pItem; - pLayout->removeWidget(pW); - delete pW; - } - mActions.clear(); - mButtons.clear(); + while(!pLayout->isEmpty()) + { + QLayoutItem* pItem = pLayout->itemAt(0); + QWidget* pW = pItem->widget(); + pLayout->removeItem(pItem); + delete pItem; + pLayout->removeWidget(pW); + delete pW; + } + + mActions.clear(); + mButtons.clear(); } } diff --git a/src/gui/UBActionPalette.h b/src/gui/UBActionPalette.h index ccfe379d..dc64a408 100644 --- a/src/gui/UBActionPalette.h +++ b/src/gui/UBActionPalette.h @@ -1,16 +1,8 @@ /* - * 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. + * UBActionPalette.h * - * 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 . + * Created on: 8 oct. 2009 + * Author: Luc */ #ifndef UBACTIONPALETTE_H_ @@ -48,6 +40,13 @@ class UBActionPalette : public UBFloatingPalette { mAutoClose = autoClose; } + + void setCustomCloseProcessing(bool customCloseProcessing) + { + m_customCloseProcessing = customCloseProcessing; + } + bool m_customCloseProcessing; + virtual int border(); void clearLayout(); QSize buttonSize(); diff --git a/src/gui/UBFloatingPalette.cpp b/src/gui/UBFloatingPalette.cpp index 59d7e380..83a85261 100644 --- a/src/gui/UBFloatingPalette.cpp +++ b/src/gui/UBFloatingPalette.cpp @@ -1,17 +1,3 @@ -/* - * 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 . - */ #include #include @@ -56,6 +42,12 @@ UBFloatingPalette::UBFloatingPalette(Qt::Corner position, QWidget *parent) mbGrip = true; } +void UBFloatingPalette::setGrip(bool newGrip) +{ + mbGrip = newGrip; + update(); +} + void UBFloatingPalette::setBackgroundBrush(const QBrush& brush) { @@ -157,7 +149,7 @@ void UBFloatingPalette::moveInsideParent(const QPoint &position) } } move(newX, newY); - minimizePalette(QPoint(newX, newY)); + minimizePalette(QPoint(newX, newY)); } else { diff --git a/src/gui/UBFloatingPalette.h b/src/gui/UBFloatingPalette.h index 6568b242..a7e63125 100644 --- a/src/gui/UBFloatingPalette.h +++ b/src/gui/UBFloatingPalette.h @@ -1,17 +1,3 @@ -/* - * 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 . - */ #ifndef UBFLOATINGPALLETTE_H_ @@ -55,6 +41,8 @@ class UBFloatingPalette : public QWidget QSize preferredSize(); void setBackgroundBrush(const QBrush& brush); + void setGrip(bool newGrip); + void setMinimizePermission(bool permission); protected: diff --git a/src/gui/UBKeyboardPalette.cpp b/src/gui/UBKeyboardPalette.cpp index 5530a1fa..edcfe09a 100644 --- a/src/gui/UBKeyboardPalette.cpp +++ b/src/gui/UBKeyboardPalette.cpp @@ -1,18 +1,9 @@ -/* - * 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 . - */ - +/* + * UBKeyboardPalette.cpp + * + * Created on: Feb 10, 2011 + * Author: tolik + */ #include #include @@ -21,6 +12,8 @@ #include "UBKeyboardPalette.h" #include "core/UBSettings.h" +#include "core/UBApplication.h" +#include "gui/UBMainWindow.h" #include "core/memcheck.h" @@ -29,16 +22,24 @@ UBKeyboardPalette */ + + UBKeyboardPalette::UBKeyboardPalette(QWidget *parent) - : UBFloatingPalette(Qt::TopRightCorner, parent) + : UBActionPalette(Qt::TopRightCorner, parent) { + setCustomCloseProcessing(true); setCustomPosition(true); setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); setFocusPolicy(Qt::NoFocus); + setClosable(true); + setGrip(false); + capsLock = false; languagePopupActive = false; keyboardActive = false; btnWidth = btnHeight = 16; + strSize = "16x16"; + currBtnImages = new BTNImages("16", btnWidth, btnHeight); buttons = new UBKeyButton*[47]; for (int i=0; i<47; i++) @@ -53,7 +54,7 @@ UBKeyboardPalette::UBKeyboardPalette(QWidget *parent) nCurrentLocale = 0; setInput(locales[nCurrentLocale]); - setContentsMargins(radius() + 15, 4, radius() + 15, 4); + setContentsMargins( 22, 22, 22, 22 ); connect(this, SIGNAL(keyboardActivated(bool)), this, SLOT(onActivated(bool))); } @@ -66,12 +67,12 @@ UBKeyboardPalette* UBKeyboardPalette::create(QWidget *parent) UBKeyboardPalette* instance = new UBKeyboardPalette(parent); instances.append(instance); - + instance->setKeyButtonSize(UBSettings::settings()->boardKeyboardPaletteKeyBtnSize->get().toString()); - instance->setAutoMinimize(UBSettings::settings()->boardKeyboardPaletteAutoMinimize->get().toBool()); instance->setVisible(false); - connect(UBSettings::settings()->boardKeyboardPaletteAutoMinimize , SIGNAL(changed(QVariant)), instance, SLOT(keyboardPaletteAutoMinimizeChanged(QVariant))); connect(UBSettings::settings()->boardKeyboardPaletteKeyBtnSize, SIGNAL(changed(QVariant)), instance, SLOT(keyboardPaletteButtonSizeChanged(QVariant))); + + connect(instance, SIGNAL(closed()), instance, SLOT(hideKeyboard())); foreach(UBKeyboardPalette* inst, instances) @@ -82,11 +83,17 @@ UBKeyboardPalette* UBKeyboardPalette::create(QWidget *parent) connect(inst, SIGNAL(localeChanged(int)), instance, SLOT(syncLocale(int))); connect(instance, SIGNAL(localeChanged(int)), inst, SLOT(syncLocale(int))); +// connect(instance, SIGNAL(closed()), inst, ) } return instance; } +void UBKeyboardPalette::hideKeyboard() +{ + UBApplication::mainWindow->actionVirtualKeyboard->activate(QAction.Trigger); +} + void UBKeyboardPalette::syncPosition(const QPoint & pos) { move(pos); @@ -98,10 +105,6 @@ void UBKeyboardPalette::syncLocale(int nLocale) setInput(locales[nCurrentLocale]); } -void UBKeyboardPalette::keyboardPaletteAutoMinimizeChanged(QVariant b) -{ - setAutoMinimize(b.toBool()); -} void UBKeyboardPalette::keyboardPaletteButtonSizeChanged(QVariant size) { setKeyButtonSize(size.toString()); @@ -122,12 +125,12 @@ void UBKeyboardPalette::setInput(const UBKeyboardLocale* locale) UBKeyboardPalette::~UBKeyboardPalette() { - //for (int i=0; i<47; i++) - // delete buttons[i]; + for (int i=0; i<47; i++) + delete buttons[i]; delete [] buttons; - //for (int i=0; i<8; i++) - // delete ctrlButtons[i]; + for (int i=0; i<8; i++) + delete ctrlButtons[i]; delete [] ctrlButtons; if (locales!=NULL) @@ -136,36 +139,29 @@ UBKeyboardPalette::~UBKeyboardPalette() delete locales[i]; delete [] locales; } + + if(currBtnImages != NULL) + { + delete currBtnImages; + currBtnImages = NULL; + } } QSize UBKeyboardPalette::sizeHint () const { - if ((autoMinimize && keyboardActive) || !autoMinimize) - { - int w = contentsMargins().left() + contentsMargins().right() + 13 + 14.5 * btnWidth; - int h = contentsMargins().top() + contentsMargins().bottom() + 5 * btnHeight + 4; - return QSize(w, h); - } - else - { - int MIN_WITH = 4, - MIN_HEIGTH = 4; - int w = contentsMargins().left() + contentsMargins().right() + 13 + 14.5 * MIN_WITH; - int h = contentsMargins().top() + contentsMargins().bottom() + 5 * MIN_HEIGTH + 4; - return QSize(w, h); - } + int w = contentsMargins().left() + 15 * btnWidth + contentsMargins().right(); + int h = contentsMargins().top() + 5 * btnHeight + contentsMargins().bottom(); + return QSize(w, h); } const QString* UBKeyboardPalette::getLocaleName() { - if (locales==NULL) - return NULL; - return &(locales[nCurrentLocale]->name); + return locales == NULL ? NULL : &(locales[nCurrentLocale]->name); } void UBKeyboardPalette::setLocale(int nLocale) { - if (locales!=NULL) + if (locales != NULL) { nCurrentLocale = nLocale; @@ -176,26 +172,24 @@ void UBKeyboardPalette::setLocale(int nLocale) emit localeChanged(nLocale); } -void UBKeyboardPalette::setKeyButtonSize(const QString& strSize) +void UBKeyboardPalette::setKeyButtonSize(const QString& _strSize) { - QStringList strs = strSize.split('x'); + QStringList strs = _strSize.split('x'); if (strs.size()==2) { + strSize = _strSize; btnWidth = strs[0].toInt(); btnHeight = strs[1].toInt(); - adjustSizeAndPosition(); - } -} + if(currBtnImages != NULL) + delete currBtnImages; + currBtnImages = new BTNImages(strs[1], btnWidth, btnHeight); -void UBKeyboardPalette::setAutoMinimize(bool autoMinimize) -{ - this->autoMinimize = autoMinimize; - adjustSizeAndPosition(); + adjustSizeAndPosition(); + } } - void UBKeyboardPalette::enterEvent ( QEvent * ) { if (keyboardActive) @@ -222,7 +216,7 @@ void UBKeyboardPalette::leaveEvent ( QEvent * ) void UBKeyboardPalette::moveEvent ( QMoveEvent * event ) { - UBFloatingPalette::moveEvent(event); + UBActionPalette::moveEvent(event); emit moved(event->pos()); } @@ -237,109 +231,230 @@ void UBKeyboardPalette::adjustSizeAndPosition(bool pUp) this->move(x()-dx, y() - dy); this->resize(rSize.width(), rSize.height()); } - UBFloatingPalette::adjustSizeAndPosition(pUp); + UBActionPalette::adjustSizeAndPosition(pUp); } void UBKeyboardPalette::paintEvent( QPaintEvent* event) { - UBFloatingPalette::paintEvent(event); + UBActionPalette::paintEvent(event); QRect r = this->geometry(); int lleft, ltop, lright, lbottom; getContentsMargins ( &lleft, <op, &lright, &lbottom ) ; - int btw = (r.width() - lleft - lright - 13) / 14.5; - int bth = (r.height() - ltop - lbottom -4) / 5; + //------------------------------------------------ + // calculate start offset from left, and from top + + int ctrlButtonsId = 0; + lleft = ( r.width() - btnWidth * 15 ) / 2; + ltop = ( r.height() - btnHeight * 5 ) / 2; + + //------------------------------------------------ + // set geometry (position) for row 1 - lleft = (r.width() - (btw * 14.5 + 13))/2; - ltop = (r.height() - (bth * 5 + 4)) / 2; + int offX = lleft; + int offY = ltop; - int off = lleft;; + //------------------- + + // buttons [`]..[+] for (int i = 0; i<13; i++) { - QRect cr(off, ltop, btw, bth); - buttons[i]->setGeometry(cr); - off += btw + 1; + buttons[i]->setGeometry(offX, offY, btnWidth, btnHeight); + offX += btnWidth; } - ctrlButtons[0]->setGeometry(off, ltop, btw * 1.5, bth); - off += btw * 1.5; - lright = off; - - ltop += bth + 1; - int lwidth = 12 * btw + 12 + btw * 1.3; - off = (r.width() - lwidth) / 2; - ctrlButtons[1]->setGeometry(off, ltop, btw * 1.3, bth); - off += btw * 1.3 + 1; - for (int i=0; i<12; i++) + + // button Backspace + ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth * 2, btnHeight); + offX += btnWidth * 2; + + //------------------------------------------------ + // set geometry (position) for row 2 + + offX = lleft; + offY += btnHeight; + offX += btnWidth / 2; + + //------------------- + + // button Tab + ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth * 2, btnHeight); + offX += btnWidth * 2; + + // buttons [q]..[]] + for (int i = 0; i<12; i++) { - QRect cr(off, ltop, btw, bth); - buttons[13 + i]->setGeometry(cr); - off += btw + 1; + buttons[i + 13]->setGeometry(offX, offY, btnWidth, btnHeight); + offX += btnWidth; } - ltop += bth + 1; - lwidth = 12 * btw + 12 + btw * 2; - off = (r.width() - lwidth) / 2; - for (int i=0; i<12; i++) +// // Row 2 Stub +// ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth * 1.5, btnHeight); +// offX += btnWidth * 1.5; + + //------------------------------------------------ + // set geometry (position) for row 3 + + offX = lleft; + offY += btnHeight; + + //------------------- + +// // Row 3 Stub +// ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth, btnHeight); +// offX += btnWidth; + + // buttons [a]..[\] + for (int i = 0; i < 12; i++) { - QRect cr(off, ltop, btw, bth); - buttons[13 + 12 + i]->setGeometry(cr); - off += btw + 1; + buttons[i + 12 + 13]->setGeometry(offX, offY, btnWidth, btnHeight); + offX += btnWidth; } - ctrlButtons[2]->setGeometry(off, ltop, btw * 2, bth); - - ltop += bth + 1; - lwidth = 12 * btw + 11; - off = (r.width() - lwidth) / 2; - ctrlButtons[3]->setGeometry(off, ltop, btw, bth); - off+=btw+1; - for (int i=0; i<10; i++) + + // button Enter + ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth * 3, btnHeight); + offX += btnWidth*3; + + //------------------------------------------------ + // set geometry (position) for row 4 + + offX = lleft; + offY += btnHeight; + + //------------------- + + // button LCapsLock + ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth*2.5, btnHeight); + offX += btnWidth*2.5; + + for (int i = 0; i < 10; i++) { - QRect cr(off, ltop, btw, bth); - buttons[13 + 12 + 12 + i]->setGeometry(cr); - off += btw + 1; + buttons[i + 12 + 12 + 13]->setGeometry(offX, offY, btnWidth, btnHeight); + offX += btnWidth; } - ctrlButtons[4]->setGeometry(r.x() + off, ltop, btw, bth); - ltop += bth + 1; - lwidth = 11 * btw + 2; - off = (r.width() - lwidth) / 2; - ctrlButtons[5]->setGeometry(off, ltop, btw, bth); - ctrlButtons[6]->setGeometry(off + btw + 1, ltop, btw*9, bth); - ctrlButtons[7]->setGeometry(off + btw*10 + 2, ltop, btw, bth); + // button RCapsLock + ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth*2.5, btnHeight); + offX += btnWidth*2.5; + + //------------------------------------------------ + // set geometry (position) for row 5 + + offX = lleft; + offY += btnHeight; + + //------------------- + + ctrlButtons[ctrlButtonsId++]->setGeometry(offX + btnWidth * 1 , offY, btnWidth * 2, btnHeight); + ctrlButtons[ctrlButtonsId++]->setGeometry(offX + btnWidth * 3 , offY, btnWidth * 9, btnHeight); + ctrlButtons[ctrlButtonsId++]->setGeometry(offX + btnWidth * 12, offY, btnWidth * 2, btnHeight); + + //------------------------------------------------ } -/* +//-----------------------------------------------------------------------// +// BTNImages Class +//-----------------------------------------------------------------------// - UBKeyboardButton -*/ +BTNImages::BTNImages(QString strHeight, int width, int height) +{ + m_strHeight = strHeight; + m_width = width; + m_height = height; + + m_strLeftPassive = ":/images/virtual.keyboard/" + strHeight + "/left-passive.png"; + m_strCenterPassive = ":/images/virtual.keyboard/" + strHeight + "/centre-passive.png"; + m_strRightPassive = ":/images/virtual.keyboard/" + strHeight + "/right-passive.png"; + m_strLeftActive = ":/images/virtual.keyboard/" + strHeight + "/left-active.png"; + m_strCenterActive = ":/images/virtual.keyboard/" + strHeight + "/centre-active.png"; + m_strRightActive = ":/images/virtual.keyboard/" + strHeight + "/right-active.png"; + + m_btnLeftPassive = QImage(m_strLeftPassive); + m_btnCenterPassive = QImage(m_strCenterPassive); + m_btnRightPassive = QImage(m_strRightPassive); + m_btnLeftActive = QImage(m_strLeftActive); + m_btnCenterActive = QImage(m_strCenterActive); + m_btnRightActive = QImage(m_strRightActive); +} + +ContentImage::ContentImage(QString strHeight, int height, QString strContentName) +{ + m_strHeight = strHeight; + m_height = height; -UBKeyboardButton::UBKeyboardButton(UBKeyboardPalette* parent) + m_strContent = ":/images/virtual.keyboard/" + strHeight + "/" + strContentName + ".png"; + m_btnContent = QImage(m_strContent); +} + +//-----------------------------------------------------------------------// +// UBKeyboardButton Class +//-----------------------------------------------------------------------// + +UBKeyboardButton::UBKeyboardButton(UBKeyboardPalette* parent, QString contentImagePath = "") :QWidget(parent), keyboard(parent), bFocused(false), bPressed(false) { + m_parent = parent; + + m_contentImagePath = contentImagePath; + imgContent = NULL; + setCursor(Qt::PointingHandCursor); } UBKeyboardButton::~UBKeyboardButton() -{} +{ + if(imgContent != NULL) + { + delete imgContent; + imgContent = NULL; + } +} void UBKeyboardButton::paintEvent(QPaintEvent*) { + QPainter painter(this); + //-------------------------- + + if(imgContent != NULL) + { + if(imgContent->m_height != m_parent->currBtnImages->m_height) + { + delete imgContent; + if(!m_contentImagePath.isEmpty()) + imgContent = new ContentImage(m_parent->currBtnImages->m_strHeight, m_parent->currBtnImages->m_height, m_contentImagePath); + } + } + else + if(!m_contentImagePath.isEmpty()) + imgContent = new ContentImage(m_parent->currBtnImages->m_strHeight, m_parent->currBtnImages->m_height, m_contentImagePath); + + //-------------------------- + if (bPressed) - painter.setBrush(QBrush(QColor(0, 0xcc, 0))); - else if (bFocused) - painter.setBrush(QBrush(QColor(0xcc, 0, 0))); + { + painter.drawImage( 0,0, m_parent->currBtnImages->m_btnLeftActive, 0,0, m_parent->currBtnImages->m_btnLeftActive.width(), m_parent->currBtnImages->m_btnLeftActive.height() ); + painter.drawImage( QRect(m_parent->currBtnImages->m_btnLeftActive.width(), 0, width() - m_parent->currBtnImages->m_btnLeftActive.width() - m_parent->currBtnImages->m_btnRightActive.width(), height()), m_parent->currBtnImages->m_btnCenterActive ); + painter.drawImage( width() - m_parent->currBtnImages->m_btnRightActive.width(), 0, m_parent->currBtnImages->m_btnRightActive, 0,0, m_parent->currBtnImages->m_btnRightActive.width(), m_parent->currBtnImages->m_btnRightActive.height() ); + } + else + { + painter.drawImage( 0,0, m_parent->currBtnImages->m_btnLeftPassive, 0,0, m_parent->currBtnImages->m_btnLeftPassive.width(), m_parent->currBtnImages->m_btnLeftPassive.height() ); + painter.drawImage( QRect(m_parent->currBtnImages->m_btnLeftPassive.width(), 0, width() - m_parent->currBtnImages->m_btnLeftPassive.width() - m_parent->currBtnImages->m_btnRightPassive.width(), height()), m_parent->currBtnImages->m_btnCenterPassive ); + painter.drawImage( width() - m_parent->currBtnImages->m_btnRightPassive.width(), 0, m_parent->currBtnImages->m_btnRightPassive, 0,0, m_parent->currBtnImages->m_btnRightPassive.width(), m_parent->currBtnImages->m_btnRightPassive.height() ); + } - painter.drawRoundedRect(0, 0, width()-1, height()-1, 3, 3); + //-------------------------- this->paintContent(painter); + + //-------------------------- } void UBKeyboardButton::enterEvent ( QEvent*) @@ -388,7 +503,6 @@ void UBKeyButton::onRelease() void UBKeyButton::paintContent(QPainter& painter) { - if (keybt) { QString text(QChar(capsLock() ? keybt->symbol2 : keybt->symbol1)); @@ -397,6 +511,12 @@ void UBKeyButton::paintContent(QPainter& painter) } } +UBCntrlButton::UBCntrlButton(UBKeyboardPalette* parent, int _code, const QString& _contentImagePath ) + :UBKeyboardButton(parent, _contentImagePath), + label(""), + code(_code) +{} + UBCntrlButton::UBCntrlButton(UBKeyboardPalette* parent, const QString& _label, int _code ) :UBKeyboardButton(parent), @@ -409,7 +529,7 @@ UBCntrlButton::~UBCntrlButton() void UBCntrlButton::onPress() { - sendControlSymbol(code); + sendControlSymbol(code); } void UBCntrlButton::onRelease() @@ -417,11 +537,20 @@ void UBCntrlButton::onRelease() void UBCntrlButton::paintContent(QPainter& painter) { - painter.drawText(rect(), Qt::AlignCenter, label); + if(!label.isEmpty()) + { + painter.drawText(rect(), Qt::AlignCenter, label); + } + else + if(imgContent != NULL) + { + painter.drawImage(( rect().width() - imgContent->m_btnContent.width() ) / 2, ( rect().height() - imgContent->m_btnContent.height() ) / 2, + imgContent->m_btnContent, 0,0, imgContent->m_btnContent.width(), imgContent->m_btnContent.height()); + } } -UBCapsLockButton::UBCapsLockButton(UBKeyboardPalette* parent) - :UBKeyboardButton(parent) +UBCapsLockButton::UBCapsLockButton(UBKeyboardPalette* parent, const QString _contentImagePath) + :UBKeyboardButton(parent, _contentImagePath) {} UBCapsLockButton::~UBCapsLockButton() @@ -438,7 +567,13 @@ void UBCapsLockButton::onRelease() void UBCapsLockButton::paintContent(QPainter& painter) { - painter.drawText(rect(), Qt::AlignCenter, "^"); + if(imgContent != NULL) + { + painter.drawImage(( rect().width() - imgContent->m_btnContent.width() ) / 2, ( rect().height() - imgContent->m_btnContent.height() ) / 2, + imgContent->m_btnContent, 0,0, imgContent->m_btnContent.width(), imgContent->m_btnContent.height()); + } + else + painter.drawText(rect(), Qt::AlignCenter, "^"); } diff --git a/src/gui/UBKeyboardPalette.h b/src/gui/UBKeyboardPalette.h index 60c91e67..ea034f4f 100644 --- a/src/gui/UBKeyboardPalette.h +++ b/src/gui/UBKeyboardPalette.h @@ -1,22 +1,7 @@ -/* - * 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 . - */ #ifndef UBKEYBOARDPALETTE_H #define UBKEYBOARDPALETTE_H -#include "UBFloatingPalette.h" - +#include "UBActionPalette.h" #include #include @@ -28,7 +13,52 @@ class UBKeyButton; class UBKeyboardButton; -class UBKeyboardPalette : public UBFloatingPalette +class UBApplication; +class UBMainWindow; + +class BTNImages +{ +public: + + BTNImages(QString _strHeight, int _width, int _height); + + QString m_strHeight; + int m_width; + int m_height; + + QImage m_btnLeftPassive; + QImage m_btnCenterPassive; + QImage m_btnRightPassive; + QImage m_btnLeftActive; + QImage m_btnCenterActive; + QImage m_btnRightActive; + +private: + QString m_strLeftPassive; + QString m_strCenterPassive; + QString m_strRightPassive; + QString m_strLeftActive; + QString m_strCenterActive; + QString m_strRightActive; + +}; + +class ContentImage +{ +public: + + ContentImage(QString strHeight, int m_height, QString strContentPath); + + QString m_strHeight; + int m_height; + + QImage m_btnContent; + +private: + QString m_strContent; +}; + +class UBKeyboardPalette : public UBActionPalette { Q_OBJECT @@ -39,12 +69,13 @@ friend class UBLocaleButton; public: ~UBKeyboardPalette(); + BTNImages *currBtnImages; + bool isEnabled(){return locales!= NULL;} virtual QSize sizeHint () const; virtual void adjustSizeAndPosition(bool pUp = true); QString getKeyButtonSize() const {QString res; res.sprintf("%dx%d", btnWidth, btnHeight); return res;} void setKeyButtonSize(const QString& strSize); - void setAutoMinimize(bool autoMinimize); static UBKeyboardPalette* create(QWidget *parent); signals: @@ -55,9 +86,9 @@ signals: private slots: void syncPosition(const QPoint & pos); void syncLocale(int nLocale); - void keyboardPaletteAutoMinimizeChanged(QVariant b); void keyboardPaletteButtonSizeChanged(QVariant size); void onActivated(bool b); + void hideKeyboard(); protected: bool capsLock; @@ -65,16 +96,16 @@ protected: int nLocalesCount; UBKeyboardLocale** locales; + QString strSize; int btnWidth; int btnHeight; - +// bool languagePopupActive; bool keyboardActive; - bool autoMinimize; - +// virtual void enterEvent ( QEvent * event ); virtual void leaveEvent ( QEvent * event ); - virtual void paintEvent(QPaintEvent *event); + virtual void paintEvent(QPaintEvent *event); virtual void moveEvent ( QMoveEvent * event ); void sendKeyEvent(const KEYBT& keybt); @@ -110,17 +141,22 @@ private: }; - class UBKeyboardButton : public QWidget { Q_OBJECT public: - UBKeyboardButton(UBKeyboardPalette* parent); + UBKeyboardButton(UBKeyboardPalette* parent, QString contentImagePath); ~UBKeyboardButton(); protected: + + UBKeyboardPalette* m_parent; + ContentImage *imgContent; + QString m_contentImagePath; + void paintEvent(QPaintEvent *event); + virtual void enterEvent ( QEvent * event ); virtual void leaveEvent ( QEvent * event ); virtual void mousePressEvent ( QMouseEvent * event ); @@ -165,6 +201,7 @@ class UBCntrlButton : public UBKeyboardButton Q_OBJECT public: + UBCntrlButton(UBKeyboardPalette* parent, int _code, const QString& _contentImagePath ); UBCntrlButton(UBKeyboardPalette* parent, const QString& _label, int _code ); ~UBCntrlButton(); @@ -182,7 +219,7 @@ class UBCapsLockButton : public UBKeyboardButton Q_OBJECT public: - UBCapsLockButton(UBKeyboardPalette* parent); + UBCapsLockButton(UBKeyboardPalette* parent, const QString _contentImagePath); ~UBCapsLockButton(); virtual void onPress(); @@ -203,7 +240,7 @@ public: virtual void paintContent(QPainter& painter); protected: - QMenu* localeMenu; + QMenu* localeMenu; }; #endif // UBKEYBOARDPALETTE_H diff --git a/src/gui/UBKeyboardPalette_win.cpp b/src/gui/UBKeyboardPalette_win.cpp index 4a4bc3ea..5f9da4f7 100644 --- a/src/gui/UBKeyboardPalette_win.cpp +++ b/src/gui/UBKeyboardPalette_win.cpp @@ -1,17 +1,3 @@ -/* - * 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 . - */ #include "UBKeyboardPalette.h" @@ -66,16 +52,19 @@ void UBKeyboardButton::sendControlSymbol(int nSymbol) void UBKeyboardPalette::createCtrlButtons() { - ctrlButtons = new UBKeyboardButton*[7]; - - ctrlButtons[0] = new UBCntrlButton(this, "<-", 0x08); - ctrlButtons[1] = new UBCntrlButton(this, "<->", 0x09); - ctrlButtons[2] = new UBCntrlButton(this, "Enter", 0x0d); - ctrlButtons[3] = new UBCapsLockButton(this); - ctrlButtons[4] = new UBCapsLockButton(this); - ctrlButtons[5] = new UBLocaleButton(this); - ctrlButtons[6] = new UBCntrlButton(this, "", 0x20); - ctrlButtons[7] = new UBLocaleButton(this); + int ctrlID = 0; + ctrlButtons = new UBKeyboardButton*[9]; + + ctrlButtons[ctrlID++] = new UBCntrlButton(this, 0x08, "backspace");// Backspace + ctrlButtons[ctrlID++] = new UBCntrlButton(this, 0x09, "tab"); // Tab +// ctrlButtons[ctrlID++] = new UBKeyButton(this); // Row 2 Stub +// ctrlButtons[ctrlID++] = new UBKeyButton(this); // Row 3 Stub + ctrlButtons[ctrlID++] = new UBCntrlButton(this, "Enter", 0x0d); // Enter + ctrlButtons[ctrlID++] = new UBCapsLockButton(this, "capslock"); // Caps Lock + ctrlButtons[ctrlID++] = new UBCapsLockButton(this, "capslock"); // Caps Lock + ctrlButtons[ctrlID++] = new UBLocaleButton(this); // Language Switch + ctrlButtons[ctrlID++] = new UBCntrlButton(this, "", 0x20); // Space + ctrlButtons[ctrlID++] = new UBLocaleButton(this); // Language Switch } void UBKeyboardPalette::onActivated(bool)