From ff25a2a06428ffb0d6d8aeddb5faaa301b4201fe Mon Sep 17 00:00:00 2001 From: "Bocklage, Jens" Date: Thu, 2 Jun 2016 14:29:22 +0200 Subject: [PATCH] First version v0.0.1 06/01/2016 - initial version - first implementation of home screen - fix HMI layout (will be configurable in the future) - dBus as IPC (may change in the future) - no interaction with application manager so far - multi-lanuage support - day/night mode support - initial status bar implementation (interface will be enhanced in the future) - initial control bar implementation - MPLv2.0 license - input device simulator for developer build (not functional right now) - system settings simulator for developer build (day/night mode switch functional right now) - using QSettings for local app setting storage (may change in the future) - first popup implementation (single popup support for now; multiple popup not defined; interface will change) - only one instance of the app allowed --- .gitignore | 2 + HomeScreen.pro | 162 ++++++++++++++++ LICENSE | 54 ++++++ README.md | 48 +++++ dbus-introspections/daynightmode.xml | 24 +++ dbus-introspections/inputevent.xml | 23 +++ dbus-introspections/popup.xml | 22 +++ dbus-introspections/statusbar.xml | 22 +++ include/daynightmode.h | 29 +++ include/inputevent.h | 36 ++++ include/popup.h | 31 ++++ resources/controlbarwidget.ui | 94 ++++++++++ resources/homescreen.qrc | 18 ++ resources/images/backgrounds/bg_blue_day.png | Bin 0 -> 1947 bytes resources/images/backgrounds/bg_blue_night.png | Bin 0 -> 1924 bytes resources/images/backgrounds/bg_green_day.png | Bin 0 -> 630 bytes resources/images/backgrounds/bg_green_night.png | Bin 0 -> 607 bytes resources/images/backgrounds/bg_stripes_day.png | Bin 0 -> 7228 bytes resources/images/backgrounds/bg_stripes_night.png | Bin 0 -> 1757 bytes resources/images/icons/Black/01.Home.png | Bin 0 -> 1394 bytes resources/images/icons/Black/02.Shop.png | Bin 0 -> 1438 bytes resources/images/icons/Black/03.Office.png | Bin 0 -> 1359 bytes resources/images/icons/Black/04.Bank.png | Bin 0 -> 1470 bytes resources/images/icons/Black/05.Tag.png | Bin 0 -> 1581 bytes resources/images/icons/Black/06.Tags.png | Bin 0 -> 1555 bytes resources/images/icons/Black/07.Wallet.png | Bin 0 -> 1530 bytes resources/images/icons/Black/08.Credit-Card.png | Bin 0 -> 1272 bytes resources/images/icons/Black/09.Handbag.png | Bin 0 -> 1613 bytes resources/images/icons/Black/10.Folder.png | Bin 0 -> 1290 bytes resources/images/icons/Black/11.Notebook.png | Bin 0 -> 1268 bytes resources/images/icons/Black/12.File.png | Bin 0 -> 1308 bytes resources/images/icons/Black/13.Clipboard.png | Bin 0 -> 1366 bytes resources/images/icons/Black/14.News.png | Bin 0 -> 1405 bytes resources/images/icons/Black/15.Pencil.png | Bin 0 -> 1665 bytes resources/images/icons/Black/16.Pen.png | Bin 0 -> 1506 bytes resources/images/icons/Black/17.Brush.png | Bin 0 -> 1913 bytes resources/images/icons/Black/18.Pictures-Day.png | Bin 0 -> 1467 bytes resources/images/icons/Black/19.Pictures-Night.png | Bin 0 -> 1496 bytes resources/images/icons/Black/20.Photos.png | Bin 0 -> 1867 bytes resources/images/icons/Black/21.Music.png | Bin 0 -> 1545 bytes resources/images/icons/Black/22.Music-Playlist.png | Bin 0 -> 1375 bytes resources/images/icons/Black/23.Videos.png | Bin 0 -> 1383 bytes resources/images/icons/Black/24.TV.png | Bin 0 -> 1259 bytes resources/images/icons/Black/25.Camera-Front.png | Bin 0 -> 1759 bytes resources/images/icons/Black/26.Camera-Back.png | Bin 0 -> 1716 bytes resources/images/icons/Black/27.Phone.png | Bin 0 -> 1342 bytes resources/images/icons/Black/28.Tablet.png | Bin 0 -> 1366 bytes resources/images/icons/Black/29.Mac.png | Bin 0 -> 1350 bytes resources/images/icons/Black/30.User.png | Bin 0 -> 2207 bytes resources/images/icons/Black/31.ID-Horizontal.png | Bin 0 -> 1593 bytes resources/images/icons/Black/32.ID-Vertical.png | Bin 0 -> 1682 bytes resources/images/icons/Black/33.Thumbs-Up.png | Bin 0 -> 1827 bytes resources/images/icons/Black/34.Thumbs-Down.png | Bin 0 -> 1827 bytes resources/images/icons/Black/35.Alarm-Clock.png | Bin 0 -> 2174 bytes resources/images/icons/Black/36.Watch.png | Bin 0 -> 1821 bytes resources/images/icons/Black/37.Stopwatch.png | Bin 0 -> 1906 bytes resources/images/icons/Black/38.Location-Pin.png | Bin 0 -> 2131 bytes resources/images/icons/Black/39.Heart.png | Bin 0 -> 1917 bytes resources/images/icons/Black/40.Cloud.png | Bin 0 -> 1667 bytes resources/images/icons/Black/41.Trophy.png | Bin 0 -> 1632 bytes resources/images/icons/Black/42.Badge.png | Bin 0 -> 1540 bytes resources/images/icons/Black/43.Bell.png | Bin 0 -> 1869 bytes resources/images/icons/Black/44.Share.png | Bin 0 -> 1385 bytes resources/images/icons/Black/45.Settings.png | Bin 0 -> 1645 bytes resources/images/icons/Black/46.Calender.png | Bin 0 -> 1300 bytes resources/images/icons/Black/47.Explore.png | Bin 0 -> 2038 bytes resources/images/icons/Black/48.Dashboard.png | Bin 0 -> 1754 bytes resources/images/icons/White/01.Home.png | Bin 0 -> 1362 bytes resources/images/icons/White/02.Shop.png | Bin 0 -> 1427 bytes resources/images/icons/White/03.Office.png | Bin 0 -> 1298 bytes resources/images/icons/White/04.Bank.png | Bin 0 -> 1401 bytes resources/images/icons/White/05.Tag.png | Bin 0 -> 1581 bytes resources/images/icons/White/06.Tags.png | Bin 0 -> 1606 bytes resources/images/icons/White/07.Wallet.png | Bin 0 -> 1531 bytes resources/images/icons/White/08.Credit-Card.png | Bin 0 -> 1252 bytes resources/images/icons/White/09.Handbag.png | Bin 0 -> 1627 bytes resources/images/icons/White/10.Folder.png | Bin 0 -> 1286 bytes resources/images/icons/White/11.Notebook.png | Bin 0 -> 1245 bytes resources/images/icons/White/12.File.png | Bin 0 -> 1288 bytes resources/images/icons/White/13.Clipboard.png | Bin 0 -> 1336 bytes resources/images/icons/White/14.News.png | Bin 0 -> 1372 bytes resources/images/icons/White/15.Pencil.png | Bin 0 -> 1686 bytes resources/images/icons/White/16.Pen.png | Bin 0 -> 1546 bytes resources/images/icons/White/17.Brush.png | Bin 0 -> 1914 bytes resources/images/icons/White/18.Pictures-Day.png | Bin 0 -> 1468 bytes resources/images/icons/White/19.Pictures-Night.png | Bin 0 -> 1484 bytes resources/images/icons/White/20.Photos.png | Bin 0 -> 1893 bytes resources/images/icons/White/21.Music.png | Bin 0 -> 1488 bytes resources/images/icons/White/22.Music-Playlist.png | Bin 0 -> 1344 bytes resources/images/icons/White/23.Videos.png | Bin 0 -> 1380 bytes resources/images/icons/White/24.TV.png | Bin 0 -> 1252 bytes resources/images/icons/White/25.Camera-Front.png | Bin 0 -> 1761 bytes resources/images/icons/White/26.Camera-Back.png | Bin 0 -> 1736 bytes resources/images/icons/White/27.Phone.png | Bin 0 -> 1334 bytes resources/images/icons/White/28.Tablet.png | Bin 0 -> 1345 bytes resources/images/icons/White/29.Mac.png | Bin 0 -> 1390 bytes resources/images/icons/White/30.User.png | Bin 0 -> 2179 bytes resources/images/icons/White/31.ID-Horizontal.png | Bin 0 -> 1649 bytes resources/images/icons/White/32.ID-Vertical.png | Bin 0 -> 1642 bytes resources/images/icons/White/33.Thumbs-Up.png | Bin 0 -> 1895 bytes resources/images/icons/White/34.Thumbs-Down.png | Bin 0 -> 1911 bytes resources/images/icons/White/35.Alarm-Clock.png | Bin 0 -> 2150 bytes resources/images/icons/White/36.Watch.png | Bin 0 -> 1811 bytes resources/images/icons/White/37.Stopwatch.png | Bin 0 -> 1872 bytes resources/images/icons/White/38.Location-Pin.png | Bin 0 -> 2098 bytes resources/images/icons/White/39.Heart.png | Bin 0 -> 1884 bytes resources/images/icons/White/40.Cloud.png | Bin 0 -> 1662 bytes resources/images/icons/White/41.Trophy.png | Bin 0 -> 1564 bytes resources/images/icons/White/42.Badge.png | Bin 0 -> 1506 bytes resources/images/icons/White/43.Bell.png | Bin 0 -> 1808 bytes resources/images/icons/White/44.Share.png | Bin 0 -> 1374 bytes resources/images/icons/White/45.Settings.png | Bin 0 -> 1609 bytes resources/images/icons/White/46.Calender.png | Bin 0 -> 1278 bytes resources/images/icons/White/47.Explore.png | Bin 0 -> 2052 bytes resources/images/icons/White/48.Dashboard.png | Bin 0 -> 1746 bytes resources/images/transparency.png | Bin 0 -> 166 bytes resources/inputdevicesimulator.ui | 163 +++++++++++++++++ resources/mainwindow.ui | 187 +++++++++++++++++++ resources/popupwidget.ui | 91 +++++++++ resources/settingswidget.ui | 102 +++++++++++ resources/statusbarwidget.ui | 203 +++++++++++++++++++++ resources/systemsettingssimulator.ui | 83 +++++++++ resources/translations/homescreen_de_DE.qm | Bin 0 -> 168 bytes resources/translations/homescreen_de_DE.ts | 90 +++++++++ resources/translations/homescreen_en_US.qm | Bin 0 -> 164 bytes resources/translations/homescreen_en_US.ts | 90 +++++++++ resources/translations/homescreen_ja_JP.qm | Bin 0 -> 819 bytes resources/translations/homescreen_ja_JP.ts | 86 +++++++++ src/controlbarwidget.cpp | 112 ++++++++++++ src/controlbarwidget.h | 60 ++++++ src/inputdevicesimulator.cpp | 56 ++++++ src/inputdevicesimulator.h | 44 +++++ src/inputeventdistributor.cpp | 50 +++++ src/inputeventdistributor.h | 41 +++++ src/main.cpp | 70 +++++++ src/mainwindow.cpp | 149 +++++++++++++++ src/mainwindow.h | 79 ++++++++ src/popupwidget.cpp | 49 +++++ src/popupwidget.h | 49 +++++ src/settingswidget.cpp | 127 +++++++++++++ src/settingswidget.h | 61 +++++++ src/statusbarwidget.cpp | 118 ++++++++++++ src/statusbarwidget.h | 62 +++++++ src/systemsettingssimulator.cpp | 74 ++++++++ src/systemsettingssimulator.h | 47 +++++ 145 files changed, 2908 insertions(+) create mode 100644 HomeScreen.pro create mode 100644 LICENSE create mode 100644 README.md create mode 100644 dbus-introspections/daynightmode.xml create mode 100644 dbus-introspections/inputevent.xml create mode 100644 dbus-introspections/popup.xml create mode 100644 dbus-introspections/statusbar.xml create mode 100644 include/daynightmode.h create mode 100644 include/inputevent.h create mode 100644 include/popup.h create mode 100644 resources/controlbarwidget.ui create mode 100644 resources/homescreen.qrc create mode 100755 resources/images/backgrounds/bg_blue_day.png create mode 100755 resources/images/backgrounds/bg_blue_night.png create mode 100755 resources/images/backgrounds/bg_green_day.png create mode 100755 resources/images/backgrounds/bg_green_night.png create mode 100755 resources/images/backgrounds/bg_stripes_day.png create mode 100755 resources/images/backgrounds/bg_stripes_night.png create mode 100644 resources/images/icons/Black/01.Home.png create mode 100644 resources/images/icons/Black/02.Shop.png create mode 100644 resources/images/icons/Black/03.Office.png create mode 100644 resources/images/icons/Black/04.Bank.png create mode 100644 resources/images/icons/Black/05.Tag.png create mode 100644 resources/images/icons/Black/06.Tags.png create mode 100644 resources/images/icons/Black/07.Wallet.png create mode 100644 resources/images/icons/Black/08.Credit-Card.png create mode 100644 resources/images/icons/Black/09.Handbag.png create mode 100644 resources/images/icons/Black/10.Folder.png create mode 100644 resources/images/icons/Black/11.Notebook.png create mode 100644 resources/images/icons/Black/12.File.png create mode 100644 resources/images/icons/Black/13.Clipboard.png create mode 100644 resources/images/icons/Black/14.News.png create mode 100644 resources/images/icons/Black/15.Pencil.png create mode 100644 resources/images/icons/Black/16.Pen.png create mode 100644 resources/images/icons/Black/17.Brush.png create mode 100644 resources/images/icons/Black/18.Pictures-Day.png create mode 100644 resources/images/icons/Black/19.Pictures-Night.png create mode 100644 resources/images/icons/Black/20.Photos.png create mode 100644 resources/images/icons/Black/21.Music.png create mode 100644 resources/images/icons/Black/22.Music-Playlist.png create mode 100644 resources/images/icons/Black/23.Videos.png create mode 100644 resources/images/icons/Black/24.TV.png create mode 100644 resources/images/icons/Black/25.Camera-Front.png create mode 100644 resources/images/icons/Black/26.Camera-Back.png create mode 100644 resources/images/icons/Black/27.Phone.png create mode 100644 resources/images/icons/Black/28.Tablet.png create mode 100644 resources/images/icons/Black/29.Mac.png create mode 100644 resources/images/icons/Black/30.User.png create mode 100644 resources/images/icons/Black/31.ID-Horizontal.png create mode 100644 resources/images/icons/Black/32.ID-Vertical.png create mode 100644 resources/images/icons/Black/33.Thumbs-Up.png create mode 100644 resources/images/icons/Black/34.Thumbs-Down.png create mode 100644 resources/images/icons/Black/35.Alarm-Clock.png create mode 100644 resources/images/icons/Black/36.Watch.png create mode 100644 resources/images/icons/Black/37.Stopwatch.png create mode 100644 resources/images/icons/Black/38.Location-Pin.png create mode 100644 resources/images/icons/Black/39.Heart.png create mode 100644 resources/images/icons/Black/40.Cloud.png create mode 100644 resources/images/icons/Black/41.Trophy.png create mode 100644 resources/images/icons/Black/42.Badge.png create mode 100644 resources/images/icons/Black/43.Bell.png create mode 100644 resources/images/icons/Black/44.Share.png create mode 100644 resources/images/icons/Black/45.Settings.png create mode 100644 resources/images/icons/Black/46.Calender.png create mode 100644 resources/images/icons/Black/47.Explore.png create mode 100644 resources/images/icons/Black/48.Dashboard.png create mode 100644 resources/images/icons/White/01.Home.png create mode 100644 resources/images/icons/White/02.Shop.png create mode 100644 resources/images/icons/White/03.Office.png create mode 100644 resources/images/icons/White/04.Bank.png create mode 100644 resources/images/icons/White/05.Tag.png create mode 100644 resources/images/icons/White/06.Tags.png create mode 100644 resources/images/icons/White/07.Wallet.png create mode 100644 resources/images/icons/White/08.Credit-Card.png create mode 100644 resources/images/icons/White/09.Handbag.png create mode 100644 resources/images/icons/White/10.Folder.png create mode 100644 resources/images/icons/White/11.Notebook.png create mode 100644 resources/images/icons/White/12.File.png create mode 100644 resources/images/icons/White/13.Clipboard.png create mode 100644 resources/images/icons/White/14.News.png create mode 100644 resources/images/icons/White/15.Pencil.png create mode 100644 resources/images/icons/White/16.Pen.png create mode 100644 resources/images/icons/White/17.Brush.png create mode 100644 resources/images/icons/White/18.Pictures-Day.png create mode 100644 resources/images/icons/White/19.Pictures-Night.png create mode 100644 resources/images/icons/White/20.Photos.png create mode 100644 resources/images/icons/White/21.Music.png create mode 100644 resources/images/icons/White/22.Music-Playlist.png create mode 100644 resources/images/icons/White/23.Videos.png create mode 100644 resources/images/icons/White/24.TV.png create mode 100644 resources/images/icons/White/25.Camera-Front.png create mode 100644 resources/images/icons/White/26.Camera-Back.png create mode 100644 resources/images/icons/White/27.Phone.png create mode 100644 resources/images/icons/White/28.Tablet.png create mode 100644 resources/images/icons/White/29.Mac.png create mode 100644 resources/images/icons/White/30.User.png create mode 100644 resources/images/icons/White/31.ID-Horizontal.png create mode 100644 resources/images/icons/White/32.ID-Vertical.png create mode 100644 resources/images/icons/White/33.Thumbs-Up.png create mode 100644 resources/images/icons/White/34.Thumbs-Down.png create mode 100644 resources/images/icons/White/35.Alarm-Clock.png create mode 100644 resources/images/icons/White/36.Watch.png create mode 100644 resources/images/icons/White/37.Stopwatch.png create mode 100644 resources/images/icons/White/38.Location-Pin.png create mode 100644 resources/images/icons/White/39.Heart.png create mode 100644 resources/images/icons/White/40.Cloud.png create mode 100644 resources/images/icons/White/41.Trophy.png create mode 100644 resources/images/icons/White/42.Badge.png create mode 100644 resources/images/icons/White/43.Bell.png create mode 100644 resources/images/icons/White/44.Share.png create mode 100644 resources/images/icons/White/45.Settings.png create mode 100644 resources/images/icons/White/46.Calender.png create mode 100644 resources/images/icons/White/47.Explore.png create mode 100644 resources/images/icons/White/48.Dashboard.png create mode 100644 resources/images/transparency.png create mode 100644 resources/inputdevicesimulator.ui create mode 100644 resources/mainwindow.ui create mode 100644 resources/popupwidget.ui create mode 100644 resources/settingswidget.ui create mode 100644 resources/statusbarwidget.ui create mode 100644 resources/systemsettingssimulator.ui create mode 100644 resources/translations/homescreen_de_DE.qm create mode 100644 resources/translations/homescreen_de_DE.ts create mode 100644 resources/translations/homescreen_en_US.qm create mode 100644 resources/translations/homescreen_en_US.ts create mode 100644 resources/translations/homescreen_ja_JP.qm create mode 100644 resources/translations/homescreen_ja_JP.ts create mode 100644 src/controlbarwidget.cpp create mode 100644 src/controlbarwidget.h create mode 100644 src/inputdevicesimulator.cpp create mode 100644 src/inputdevicesimulator.h create mode 100644 src/inputeventdistributor.cpp create mode 100644 src/inputeventdistributor.h create mode 100644 src/main.cpp create mode 100644 src/mainwindow.cpp create mode 100644 src/mainwindow.h create mode 100644 src/popupwidget.cpp create mode 100644 src/popupwidget.h create mode 100644 src/settingswidget.cpp create mode 100644 src/settingswidget.h create mode 100644 src/statusbarwidget.cpp create mode 100644 src/statusbarwidget.h create mode 100644 src/systemsettingssimulator.cpp create mode 100644 src/systemsettingssimulator.h diff --git a/.gitignore b/.gitignore index 658ee1a..051f2d5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +# manually added: +.DS_Store # Created by https://www.gitignore.io/api/linux,qt,c,c++ diff --git a/HomeScreen.pro b/HomeScreen.pro new file mode 100644 index 0000000..3a80fab --- /dev/null +++ b/HomeScreen.pro @@ -0,0 +1,162 @@ +# Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#TODO: compile switches for ARM/x86 architecture + +QT += core gui dbus + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +TARGET = HomeScreen +TEMPLATE = app + + +SOURCES += \ + src/main.cpp \ + src/mainwindow.cpp \ + src/inputdevicesimulator.cpp \ + src/systemsettingssimulator.cpp \ + $$OUT_PWD/daynightmode_adapter.cpp \ #generated dbus adapter + $$OUT_PWD/daynightmode_proxy.cpp \ #generated dbus proxy + $$OUT_PWD/popup_adapter.cpp \ #generated dbus adapter + $$OUT_PWD/popup_proxy.cpp \ #generated dbus proxy + $$OUT_PWD/inputevent_adapter.cpp \ #generated dbus adapter + $$OUT_PWD/inputevent_proxy.cpp \ #generated dbus proxy + $$OUT_PWD/statusbar_adapter.cpp \ #generated dbus adapter + $$OUT_PWD/statusbar_proxy.cpp \ #generated dbus proxy + src/settingswidget.cpp \ + src/popupwidget.cpp \ + src/inputeventdistributor.cpp \ + src/controlbarwidget.cpp \ + src/statusbarwidget.cpp + +HEADERS += \ + include/daynightmode.h \ + include/inputevent.h \ + include/popup.h \ + src/mainwindow.h \ + src/inputdevicesimulator.h \ + src/systemsettingssimulator.h \ + $$OUT_PWD/daynightmode_adapter.h \ #generated dbus adapter + $$OUT_PWD/daynightmode_proxy.h \ #generated dbus proxy + $$OUT_PWD/popup_adapter.h \ #generated dbus adapter + $$OUT_PWD/popup_proxy.h \ #generated dbus proxy + $$OUT_PWD/inputevent_adapter.h \ #generated dbus adapter + $$OUT_PWD/inputevent_proxy.h \ #generated dbus proxy + $$OUT_PWD/statusbar_adapter.h \ #generated dbus adapter + $$OUT_PWD/statusbar_proxy.h \ #generated dbus proxy + src/settingswidget.h \ + src/popupwidget.h \ + src/inputeventdistributor.h \ + src/controlbarwidget.h \ + src/statusbarwidget.h + +FORMS += \ + resources/mainwindow.ui \ + resources/inputdevicesimulator.ui \ + resources/systemsettingssimulator.ui \ + resources/settingswidget.ui \ + resources/popupwidget.ui \ + resources/controlbarwidget.ui \ + resources/statusbarwidget.ui + +TRANSLATIONS = \ + resources/translations/homescreen_en_US.ts \ + resources/translations/homescreen_de_DE.ts \ + resources/translations/homescreen_ja_JP.ts + +OTHER_FILES += \ + dbus-introspections/daynightmode.xml \ + dbus-introspections/inputevent.xml \ + dbus-introspections/popup.xml \ + dbus-introspections/statusbar.xml + +RESOURCES += \ + resources/homescreen.qrc + +# remove generated files +QMAKE_CLEAN += -r \ + $$OUT_PWD/HomeScreen \ + $$OUT_PWD/Makefile \ + $$OUT_PWD/daynightmode_adapter.h \ + $$OUT_PWD/daynightmode_adapter.cpp \ + $$OUT_PWD/daynightmode_adapter.moc \ + $$OUT_PWD/daynightmode_proxy.h \ + $$OUT_PWD/daynightmode_proxy.cpp \ + $$OUT_PWD/daynightmode_proxy.moc \ + $$OUT_PWD/popup_adapter.h \ + $$OUT_PWD/popup_adapter.cpp \ + $$OUT_PWD/popup_adapter.moc \ + $$OUT_PWD/popup_proxy.h \ + $$OUT_PWD/popup_proxy.cpp \ + $$OUT_PWD/popup_proxy.moc \ + $$OUT_PWD/inputevent_adapter.h \ + $$OUT_PWD/inputevent_adapter.cpp \ + $$OUT_PWD/inputevent_adapter.moc \ + $$OUT_PWD/inputevent_proxy.h \ + $$OUT_PWD/inputevent_proxy.cpp \ + $$OUT_PWD/inputevent_proxy.moc \ + $$OUT_PWD/statusbar_adapter.h \ + $$OUT_PWD/statusbar_adapter.cpp \ + $$OUT_PWD/statusbar_adapter.moc \ + $$OUT_PWD/statusbar_proxy.h \ + $$OUT_PWD/statusbar_proxy.cpp \ + $$OUT_PWD/statusbar_proxy.moc + +# Create custom targets for generating dbus proxy and adapter +# for daynightmode +daynightmodegenerateadapter.target = $$OUT_PWD/daynightmode_adapter.cpp +unix:daynightmodegenerateadapter.commands = "qdbusxml2cpp -m -a daynightmode_adapter $$_PRO_FILE_PWD_/dbus-introspections/daynightmode.xml; moc $$OUT_PWD/daynightmode_adapter.h -o $$OUT_PWD/daynightmode_adapter.moc" +daynightmodegenerateproxy.target = $$OUT_PWD/daynightmode_proxy.cpp +unix:daynightmodegenerateproxy.commands = "qdbusxml2cpp -m -p daynightmode_proxy $$_PRO_FILE_PWD_/dbus-introspections/daynightmode.xml; moc $$OUT_PWD/daynightmode_proxy.h -o $$OUT_PWD/daynightmode_proxy.moc" +PRE_TARGETDEPS += \ + $$OUT_PWD/daynightmode_adapter.cpp \ + $$OUT_PWD/daynightmode_proxy.cpp +QMAKE_EXTRA_TARGETS += \ + daynightmodegenerateadapter \ + daynightmodegenerateproxy +# for popup +popupgenerateadapter.target = $$OUT_PWD/popup_adapter.cpp +unix:popupgenerateadapter.commands = "qdbusxml2cpp -m -a popup_adapter $$_PRO_FILE_PWD_/dbus-introspections/popup.xml; moc $$OUT_PWD/popup_adapter.h -o $$OUT_PWD/popup_adapter.moc" +popupgenerateproxy.target = $$OUT_PWD/popup_proxy.cpp +unix:popupgenerateproxy.commands = "qdbusxml2cpp -m -p popup_proxy $$_PRO_FILE_PWD_/dbus-introspections/popup.xml; moc $$OUT_PWD/popup_proxy.h -o $$OUT_PWD/popup_proxy.moc" +PRE_TARGETDEPS += \ + $$OUT_PWD/popup_adapter.cpp \ + $$OUT_PWD/popup_proxy.cpp +QMAKE_EXTRA_TARGETS += \ + popupgenerateadapter \ + popupgenerateproxy +# for inputevent +inputeventgenerateadapter.target = $$OUT_PWD/inputevent_adapter.cpp +unix:inputeventgenerateadapter.commands = "qdbusxml2cpp -m -a inputevent_adapter $$_PRO_FILE_PWD_/dbus-introspections/inputevent.xml; moc $$OUT_PWD/inputevent_adapter.h -o $$OUT_PWD/inputevent_adapter.moc" +inputeventgenerateproxy.target = $$OUT_PWD/inputevent_proxy.cpp +unix:inputeventgenerateproxy.commands = "qdbusxml2cpp -m -p inputevent_proxy $$_PRO_FILE_PWD_/dbus-introspections/inputevent.xml; moc $$OUT_PWD/inputevent_proxy.h -o $$OUT_PWD/inputevent_proxy.moc" +PRE_TARGETDEPS += \ + $$OUT_PWD/inputevent_adapter.cpp \ + $$OUT_PWD/inputevent_proxy.cpp +QMAKE_EXTRA_TARGETS += \ + inputeventgenerateadapter \ + inputeventgenerateproxy +# for statusbar +statusbargenerateadapter.target = $$OUT_PWD/statusbar_adapter.cpp +unix:statusbargenerateadapter.commands = "qdbusxml2cpp -m -a statusbar_adapter $$_PRO_FILE_PWD_/dbus-introspections/statusbar.xml; moc $$OUT_PWD/statusbar_adapter.h -o $$OUT_PWD/statusbar_adapter.moc" +statusbargenerateproxy.target = $$OUT_PWD/statusbar_proxy.cpp +unix:statusbargenerateproxy.commands = "qdbusxml2cpp -m -p statusbar_proxy $$_PRO_FILE_PWD_/dbus-introspections/statusbar.xml; moc $$OUT_PWD/statusbar_proxy.h -o $$OUT_PWD/statusbar_proxy.moc" +PRE_TARGETDEPS += \ + $$OUT_PWD/statusbar_adapter.cpp \ + $$OUT_PWD/statusbar_proxy.cpp +QMAKE_EXTRA_TARGETS += \ + statusbargenerateadapter \ + statusbargenerateproxy + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..31c692a --- /dev/null +++ b/LICENSE @@ -0,0 +1,54 @@ +Apache License + +Version 2.0, January 2004 + +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + You must give any other recipients of the Work or Derivative Works a copy of this License; and + You must cause any modified files to carry prominent notices stating that You changed the files; and + You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS diff --git a/README.md b/README.md new file mode 100644 index 0000000..b3845aa --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +AGL Home Screen reference implementation + + +AGL repo for source code: +https://gerrit.automotivelinux.org/gerrit/#/admin/projects/staging/HomeScreen +AGL repo for bitbake recipe: +https://gerrit.automotivelinux.org/gerrit/#/admin/projects/AGL/meta-agl-demo +[...]/recipes-hmi/homescreen + + + +v0.0.1 +06/01/2016 + +#new features +- initial version +- first implementation of home screen +- fix HMI layout (will be configurable in the future) +- dBus as IPC (may change in the future) +- no interaction with application manager so far +- multi-lanuage support +- day/night mode support +- initial status bar implementation (interface will be enhanced in the future) +- initial control bar implementation +- MPLv2.0 license +- input device simulator for developer build (not functional right now) +- system settings simulator for developer build (day/night mode switch functional right now) +- using QSettings for local app setting storage (may change in the future) +- first popup implementation (single popup support for now; multiple popup not defined; interface will change) +- only one instance of the app allowed + +#TODOs +- many settings have to be read from the system somewhere during app startup. This is not available right now +- interaction with application manager +- interaction with wayland compositor +- define and implement input device event handler +- replace my HMI design with the official AGL design (graphics/icons...) +- implement example HMI layouts +- rename dBus objects (internal/external) +- fix font issues on target +- more documentation ;) +- add animations +- much more... + +Thanks to Umar Irshad for his free iconset available here: +https://dribbble.com/shots/1569128-Freebie-48-Bubbles-Iconset + + diff --git a/dbus-introspections/daynightmode.xml b/dbus-introspections/daynightmode.xml new file mode 100644 index 0000000..b88f0ca --- /dev/null +++ b/dbus-introspections/daynightmode.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + diff --git a/dbus-introspections/inputevent.xml b/dbus-introspections/inputevent.xml new file mode 100644 index 0000000..4d8dfc5 --- /dev/null +++ b/dbus-introspections/inputevent.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + diff --git a/dbus-introspections/popup.xml b/dbus-introspections/popup.xml new file mode 100644 index 0000000..0ec8db3 --- /dev/null +++ b/dbus-introspections/popup.xml @@ -0,0 +1,22 @@ + + + + + + + + + + diff --git a/dbus-introspections/statusbar.xml b/dbus-introspections/statusbar.xml new file mode 100644 index 0000000..fcfe939 --- /dev/null +++ b/dbus-introspections/statusbar.xml @@ -0,0 +1,22 @@ + + + + + + + + + + diff --git a/include/daynightmode.h b/include/daynightmode.h new file mode 100644 index 0000000..bf16f29 --- /dev/null +++ b/include/daynightmode.h @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef DAYNIGHTMODE_H +#define DAYNIGHTMODE_H + +namespace SystemDayNight { + typedef enum DayNightMode + { + DAYNIGHTMODE_UNDEFINED, + DAYNIGHTMODE_DAY, + DAYNIGHTMODE_NIGHT + } eDayNightMode; +} + +#endif // DAYNIGHTMODE_H diff --git a/include/inputevent.h b/include/inputevent.h new file mode 100644 index 0000000..730ac57 --- /dev/null +++ b/include/inputevent.h @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef INPUTEVENT_H +#define INPUTEVENT_H + +namespace SystemInputEvent +{ + typedef enum InputEventType + { + INPUTEVENTTYPE_UNDEFINED, + INPUTEVENTTYPE_KEY_PRESSED + } eInputEventType; + + typedef enum InputEventZone + { + INPUTEVENTZONE_UNDEFINED, + INPUTEVENTZONE_1, + INPUTEVENTZONE_2 + } eInputEventZone; +} + +#endif // INPUTEVENT_H diff --git a/include/popup.h b/include/popup.h new file mode 100644 index 0000000..1b92333 --- /dev/null +++ b/include/popup.h @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef POPUP_H +#define POPUP_H + +namespace SystemPopup { + typedef enum PopupType + { + POPUPTYPE_UNDEFINED, + POPUPTYPE_INFO, + POPUPTYPE_WARNING, + POPUPTYPE_ERROR + } ePopupType; +} + +#endif // POPUP_H + diff --git a/resources/controlbarwidget.ui b/resources/controlbarwidget.ui new file mode 100644 index 0000000..bcbe95c --- /dev/null +++ b/resources/controlbarwidget.ui @@ -0,0 +1,94 @@ + + + ControlBarWidget + + + + 0 + 0 + 800 + 60 + + + + Form + + + + + 0 + 0 + 800 + 60 + + + + background-image: url(:/images/backgrounds/bg_green_day.png); + + + + + 10 + 10 + 40 + 40 + + + + Qt::NoFocus + + + background-image: url(:/images/transparency.png); +border-image: url(:/images/transparency.png); + + + + + + + :/icons/home_day.png:/icons/home_day.png + + + + 40 + 40 + + + + + + + 380 + 10 + 40 + 40 + + + + Qt::NoFocus + + + background-image: url(:/images/transparency.png); +border-image: url(:/images/transparency.png); + + + + + + + :/icons/settings_day.png:/icons/settings_day.png + + + + 40 + 40 + + + + + + + + + + diff --git a/resources/homescreen.qrc b/resources/homescreen.qrc new file mode 100644 index 0000000..0a8ee15 --- /dev/null +++ b/resources/homescreen.qrc @@ -0,0 +1,18 @@ + + + images/transparency.png + images/backgrounds/bg_stripes_day.png + images/backgrounds/bg_stripes_night.png + images/backgrounds/bg_blue_day.png + images/backgrounds/bg_blue_night.png + images/backgrounds/bg_green_day.png + images/backgrounds/bg_green_night.png + images/icons/White/01.Home.png + images/icons/Black/01.Home.png + images/icons/White/45.Settings.png + images/icons/Black/45.Settings.png + translations/homescreen_de_DE.qm + translations/homescreen_en_US.qm + translations/homescreen_ja_JP.qm + + diff --git a/resources/images/backgrounds/bg_blue_day.png b/resources/images/backgrounds/bg_blue_day.png new file mode 100755 index 0000000000000000000000000000000000000000..1cbe79a659cb7a2be76c72a8f8e0869ad5d496ea GIT binary patch literal 1947 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV0^&A1QfZHI&Tq>;w4PZ!6Kid%25E#zfj;5cCL;D2_Z#k>O(wy68)?p9}D*bywmz#yT+z|hRf zkg$P)!61TxfsLEtKmsF}%Ol3naF7YiB}EZP4?&ZV6v1rAv<|x>m=mFHqLL!0?NEm! zxe3`iBt=Le0u&{z2q{EBTCtl%sv=ON5i|)&5h!Mn9FAlic11{Gi#t(}st74;L0XaA zgk%zuBIK|ICRDVoUONcVYMsf(!O8p9~b? zEbxddW?2JzX3_DsH{Kwvd;Bf#ZO| zgZlOdvGWd0*rM*EyIY-sVMnkK1A~MP14A<_L&63I27?HoZQKk85*Wc;9x;Z7gG^v9 zDT+XP2%3bX2xdE`b=VcboCtLjl@vj3hdLa|O~}?EDMAVnpeSKQNFf5!irpkq6@em+ zph-xIKrxHta3t%nD?$oe+=+rzMMz-_(u(9JB$JR7A%`t6p%PYv6e7UXjKd^S6(I#1 zP%E;VkW4~SgcPZapN!^R ea4GQNB-3?a)>^Jbd!&K&C4;A{pUXO@geCxng;O8^ literal 0 HcmV?d00001 diff --git a/resources/images/backgrounds/bg_green_day.png b/resources/images/backgrounds/bg_green_day.png new file mode 100755 index 0000000000000000000000000000000000000000..9549399450b51f2550b33931a13b0a5dd9b8cfdc GIT binary patch literal 630 zcmeAS@N?(olHy`uVBq!ia0y~yU{(OKZ8(^Kq~JSGCm_XH;1OBOz`!jG!i)^F=12eq z*-JcqUD+S7$nYERyeK}T02GqV42dXl&d<$F%_{+N85o?4QWHy3QxwWGOEMJPJ$(aG z^itUw7#QDpx;TbZ+5ozg&-+5pbh1s@}L^j4g4Oi2rmDZF%0 z_~yFrpFfsV*xtVumA!VW+0D1#cD!L=c=0Cw{P*+hvDZt1sCM1%1V)A|H(?D8gCb z5n0T@z%2~Ij105pNB{-dOFVsD*&ndT2yh6e&YPahz`*#%)5S5Q;?~*v={=Nauw&7z?u??oibrM5{w2Hboj-p0;n$kz?6q63-AdVh`|&1b zh6S7JZSUL5m&9H#jlKSL=es6W27%&(mw=qo*#6zzVhj#vSiM1VrMB<%A{ZDpzGpoh z1u`J)HBjk?`P|n$z_PLPUxTC##dRPi?bw~b$Z#ZP1H|CRU~@n7PuqG8sJVUv1H-f( u3B5#HYWP1P5@hEuc5a4*&Jk(lM*g+NyDm8!nEL^f0)wZkpUXO@geCyLm;i_X literal 0 HcmV?d00001 diff --git a/resources/images/backgrounds/bg_stripes_day.png b/resources/images/backgrounds/bg_stripes_day.png new file mode 100755 index 0000000000000000000000000000000000000000..a9978bbfba5cef566b84e2760d81a92f3c02c72d GIT binary patch literal 7228 zcmeHM{ZEru6n``+8!bI$Xe z=bYS}7PBMwtjE8JM-XH^Bb*k6Ag{a&-b0)n!MEEqg9;uFSy6kaNb}9N%wVzRXxP3m z1i4)1Vo7!aYg|V7{wxG}?Hc?z+z_b`gH3{%&J#zAj)*@^&J-YfG6jNTSt%lMVvI95 z;?>Hag>kbJwL`f-Peed;jYvNlWqOvU7TiZzD0pU<$Qv3FKNOlt-oK z72`EVe3jlbKBv92X{%@peCR!);*FsFg2Fs2{d585Ap2{-V9=mw)2qphSqddpA zH>oqeYnHPhpmeOe8kleG17Y?9C-ZFyDXChulq&d@@G#XOQY-QE@vge8mS#GU1{8jU zH3x^C9uMfa;nd(m9GnRsp(b-8ISws7yCsy;2tTl&odcenaH?cZMZgowU8~1}MtY)N zSwyF4jdU^=>@q;#b_)%|0=nwjs1a2MJ06i^SRVwDq*U%vWt}w z+4loWFY}Ss>D5w#%xB;zMb;2IwQpO4VY9!I&B2jMQ0H4k9Gnciaz=J5GA{@NkiZJ| zFTjpcMd+1BGna;XXwMI|sq09K~u<|cv|z;<@mZ~S za6Wps*TljlJ966(X0pGM=8b!H*9G`Qc4H*&?o{#l_1&S;~L=)SwI08=6jA-V6m*=g_cfj`hhDb_G?t-{%@n z0|}uSU{lkJgZ{=HKY*~(nUG~bQu77rD8aOmh?J%c%wMsw|593Z3JT8znp|Vd4QHU< zz$Qp`?}b`QZvr>FK}w}R7xQ%Phm$x?6(f{>rMwcUH6j)1`PlCU@aP*|u)U0U(0{f{23^=_-W;6os#{K>qWD9AO$RqlF| z7ZE236=>Y5MX(<2r4Rc7EVFWUjRE*{IypGx!f8`_W12-SZQ^NxhCS{ zXamKCp}qxc2W=0Lp^uihyO_`Nc&n`!bPA0nBY#NH$^?Xeh zJ$mI3Vx|mW;4!mzf=tsqHR3cSqSQJ163gukB%-2=b>os#r-m3T0&&5)^M?gYrp4V zH(cz7dl$RmVmDmuhKr39u#o~bQou$E*hm2zDPS{PY=(=?aIqQg|Icurwpq-T%WJFf Ww9X@ZK`Z!k4`I+FY0cDw1^)o>yK|}l literal 0 HcmV?d00001 diff --git a/resources/images/backgrounds/bg_stripes_night.png b/resources/images/backgrounds/bg_stripes_night.png new file mode 100755 index 0000000000000000000000000000000000000000..1ba1c39ba7d3a91f8c877abd625353325824c751 GIT binary patch literal 1757 zcmcgtjZ>0$9A~xpp5a`Nkd;Yk+xh4)r)QVF=t)YMxnA_4mC1{_u$1UUU0Peh(qP&& zbH1Fcx6>;Ma7SWTn}`^txn*HZsPLujdcn3dM>^g2dE)Fp*m1nv=RW-Sy#0>iq{O&c zZgbs8B+@KqeC$RNY34%s9OW_tUcGG07$0G;#dEupxdNPhL$$1oA|LULMf}LlKiWH{s%EvPE z;XA3H_E(Nn6$h@WH`?{(eTv&PjER#gH$^p%KVXIQ7rg1zlx;_65BwWg@I+ST*E9G6 zD`T}RAD?jU)#e@~_iB#?q-b*wlT*}XKIh9=1H7>K2yNt3+Oo-;yw$(d?3vf?S1WJY zyR>w4q`Y!PpzO+D`~@<8Kz+}KknH~5-%r@SYA(ae)BkZ8}m-xVVNmU z^J;XtXi=f&alTV%a#q+48qbS^B5Z7j%HT9=s-Rz1f(4fokr-08F&e15br>3hoZd<1 zvgHUIEU!?ygd!3$SLMPIQPzQewAO*_asosGhfX7e>|f{OES}eEK}Vxt_##!0HFqrp zNw|7;K|8H814XQl@e-3U%@-Q5?>@HG72Mtz5&pUsLS4adFc!qdqwmwR6u@15l{`G z{@c+x61ogng*n0Cjcv`crb=KEnE_}_SDH8BFT9ZA&Q+(uGN1-LDk51uRvnG7tqugw z6<75RaVKQka25zUwj5gA0r}nB1Jw}fJ)Q+2?3KWB9^MMxbUKUf8UmB(g+*1j1`^AG zVIl^8D?|e|;879D7O7xbI-LW-b0y|CjUa?<3(f*TvvZ)u>yTeXA5=r^f?`TRb@{;Z ze5eL*VzE|yDA>>_P{5+X3)d6=?s~xZ?;QoZPy=2xkt`W*B15 zmq^y%fKSVPi37oNC45dJgzWttIEy7(Vg6q(_T-FclBZ?%Ck7_`5s{dT#MsL*X-EG9 DZHoP^ literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/01.Home.png b/resources/images/icons/Black/01.Home.png new file mode 100644 index 0000000000000000000000000000000000000000..08323c875555160ed6420f3f5a34ebd74ad88490 GIT binary patch literal 1394 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o&*>5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HodMU2973XE~YNdhOUN&uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_CocV;MHs8T$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!Db2?zKO}1c_0BzPy|8z>ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjwr;B4q#jQ8D0<#Vq@GxA+c*1hd|2W?T*(&QpdIrDJBfJy$dM$i&zj&rm z&qi6zjdKE01T-5>s!HG9$U10w-PY;#^nHvBYq%t=AFZsOpvG%xcTU1>PxiDUERTNI zarbnyJhSIl^yt`;u*ATup)YYelVRW^X1AJk-U`PeWRr|I%O!p0{7_R+b>Z7=$-z4D zP!882$0ZN+4AX8or73ysy&<fE z8L{4qT!9@LN5r`DH?Qhk5*eECYpGq#vS+#1zTD>iX6B=^BH0C`!bxP&1XD%xm`OI~ zC$ig*%X6M!?9Z3mEbOx9N5%2$^S|^O?(O*d>akbE&1+rS_a;xV|DN8ux1aydEKkO~ vihkSW$_bgC?*C;&c7EMzH*xFj^$g4mE?)l~C2mg+29<)Iu6{1-oD!M5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HoXRx=0;{lF0L-lhHi$2uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_Coc#;MHs8T$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!Db2?zKO}1c_0BzPy|8z>ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjwpXV3|D3x|oie_4w-pNLBxH+1rn^gWn%(WS>xLS@3y*nEW+2@wbO)ia&lpD)m# zux9eE@bkACjV?T94V--7*@E|sR<9S?2Yk98&V7VUdgWu^$@0gSbjP1QI&FdZ9y{Zv zFFYGRvRpKH^{ZC7gP%olj=sl|+gF-+SOh0F@o+fuZF;A9D@4)5p(QS$!1u-BJjdI! z{O0a@$hk$P#NU5)`FZW#QH;kQqww_~F$;11v zS>vy3+x_4>ue#9Q*f(a?im3_zf_jbYSFEcmeQ#pHamc12Y^n763(NmnPqEtXe)A9O zzRn}pG$(y{Ewqy9ox4TW$9Z=T7PXtGF0aezuzX~d$@)~LlX+im;>;U1?h-AI$2gcS zYMP6@D004~7(J!tR{H*_b6)H8YyOt8daQEx;nuRl6@PJ!o;!aW7ott=uJ zN>;wu?mD}f_la=7|5Pcltt*2r8qcfWlJPk&`sU@fOBZg~?Om!j|DKS}V-aO$3vGSL xV3GB?54P6K+b7n&(yisXAlpoh6M+qk3^N1Y3iwS+`UWa7Jzf1=);T3K0RRi61yBG0 literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/03.Office.png b/resources/images/icons/Black/03.Office.png new file mode 100644 index 0000000000000000000000000000000000000000..6e74c74d6747a4cc71e8784af468f8de2d6d412e GIT binary patch literal 1359 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 literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/06.Tags.png b/resources/images/icons/Black/06.Tags.png new file mode 100644 index 0000000000000000000000000000000000000000..6d85ddea2a135057164dda6948dbd78c9f2976cf GIT binary patch literal 1555 zcmbVMdr;GM9FM5wA@1=j^RYjio0|eY=5x-un{)Gdx<`uC?GMjCmP_*c{l58r zKHqm%Ryb#mPn(hk0Kj;=jd3X}7JpJy%6nQ_tXEmovZYF{6zb$AR^$N6E7WqJJ;2s; zE{^p!Hy-Co0ARF_cUQ?(j=7{q2x!^3jy4hqDQEyFDT{2-M z6}iC#J#nhaQ329|$brRLU6BVtQ4q(qsJ$kqyB*#s$`J_#WZayXt62c?ljDJg>^YzRiR2pkB+;~LhMWEc0Z8_(31+|3~l zc5#vr7ClNm>NE+klDp>{iYqGKkmVw;6ovIOf+rl{g0h`4LCP1cm-mtey^c0oFbcO| z2yR4CBZg6g(PGqLIz59>)&$41u!sdSQaHshG-^dri_T2YW}2~>3C4`kgn>$6?LkRq zgB~tnmsjkLVCm;#Nm}GsSrFZV;7@cwg-?(L$tQ$Bx)KNT9ju2B#svlO0zHYB;Y5BB z=e3GL036OR$v?vb15Tr~o+1q9k;oCF&Zs8{9Me&Z!C-+#u-^ZZHCS;5jG*I#WoATWIDVKvbPxcNC_6*BBSXIonO+@DO$IKmxlr?M%Azg4E4lqg ztUY%Dy!K}C<+1yhn$1)CUQ4&zCN$hmS=IM)&xF(JB^vtJuO}XD^!G2D-TtTj$FrLT zHyJisyRHu|%wJ0D6J|)5zI~u0m?|D3Gb5?h*n^9@1o6e~h@9n!%I`h!BXecB1YIb|Mf5+jy zpSd%%(Ee-HqiQnSrGXbme;%e**uVvYoqOMS*l~Dww(T#8`Yod%3U3VETbMi4qdgV1 zX>8reS+3+UQ(alnORpfYQg7Hw5I5P}fkJe(BbpuSnU<$A^UmPrS?pZ(<@;%wlyQl9 z;-uvds>{Yf-%PJ~h-b~yGwRg4sV}Hj#Fk~(>9*9Ij6o^)j-nk0Ra^Xb=Jc&DMChN& zFUPjC`}KLJ%>7q21&C$6#gvp!Pfp+ZUUXeXNBY{sruerP-fpX;D#S&ptBtMX z!^1DVy;5V`mH*w^-Zbc%+%^OHe$1OQTi5UNm2b$SY}Be53sgC_ZT+1eXMWXr4w%+a z+kD{8J6$)k=%tz*$ G)_(vRvMEXc literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/07.Wallet.png b/resources/images/icons/Black/07.Wallet.png new file mode 100644 index 0000000000000000000000000000000000000000..7c3be7f63eed67135d22c49b1b557194fa024d14 GIT binary patch literal 1530 zcmbVMeQ?uc7>|XM2@L24V@%;fs&06;P0}uHB5~I?EiICLbREHohkFfH4F&72%K}!*QE9a3COfe2Bmlork9z0*;T<;}p+itmq#cf0#@1zVDOY z^LxItB0qOl^5~4w001ProRnK$QRPW`Tz*f>iMPqi6v^(D3WYK$>JwSO;ulI;(8c@8 zSvTwRSHF6koe2OV0-VPydFeR>Bk($(g3-nJu&fOLGjn2L9}{FHu#_$5LL~HC=VuVe z`AKMAHVxBZ8yn!9H6mMBlj~t>f(-75a$W>y#t4~!XC)sP<10fEB1S?(yo9`0#CixE zf=EFUy6=>i&IfIR$b#8AgO-621jH~MV$8-cO35L^ejCCUE$IWNV_o zjBrzqVO#QvgaVQjCiMDfG^&dlbb?r}M{pchI8an8Beap~kmQSLLlI4afnpKsk!g@pp>v>*@YX}{Y-0Z(@JQN-AREJr; zn~exnA|uzMOp{QSbN6UN3Q+cj$P+oaD85QcV5)dFB)KROlE3KuoS!fm4K}kKwP1D> z#>@y}Mo|lHwwn#8!AQXtM}p&Fx(I^W5hHA-Y={Fv>;@}tv)U-T6{oDI4L4a5x~@<} z@`V^SVV9Hb!gkbb!L0BjbqSlu`XoX02ts9|1M&lcBt!y27_=2)U>5CTxR4^4p%mzT zyc8>P3t7KI6nJnb!vyyb4@{U1u^BD6$vPZ4Y&MvUIF6wP3uQ9dpt=lK(tHMl2CZkyV& zV1A4Dbb)2^s99~bn^%GTeNRhinJ-8azoWvbZ(nU`Fyryr7gjcOJTY6V4NR)btkF~> zT*JYA^odUg)fu-oMb`hh=ti)JKKIru@%UMddc!?cQBh|__puL}t2OHYf6r6qk@^z* z)$_+rm(E!-b+F|nxS*nFac2G4H|UgLTJgx22c26pTkAphJHT^|oA1`^i1A11O}EBf znCmP&u|eIFmGwzMm#!Z;N!&Tr_U!d9TiSN4Q)Qb+98YrxGp^N^pF5S)J;STIr$bwv z*MFveS>NK))YJ9p13w+J9E262`eDau5pIWv^U$oDL!&Fe@#-&fsdo$R|6e+&+O^l zGdek3(R#TuZ`t(r8{HGl`@bdc&dUvxhqr7|D9`emqKw=t(@*n(U6-aDXuTpP)$KZS z^Jr+r`faZFcK`MFe)X8XT&8Z{c~|i0fT^b`rFp^Kra`E(c~I4nUwc4Ptl_5w9Xs|8 p99sP2AijMOscxQdDW3j=YAhg48-SNDsQg~}8@uee)NX4@?LQRdFIE5m literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/08.Credit-Card.png b/resources/images/icons/Black/08.Credit-Card.png new file mode 100644 index 0000000000000000000000000000000000000000..690fb65bc8f5477e9e2e7f7ea4a4571a4fa8b110 GIT binary patch literal 1272 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o&*>5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>Hob<1My`e?2F@ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjw`hUZ@c5FrGM58yvZWLtZaA07XuqS8#7e<#YS_g{dzVtrG5v@Lb?`N>rUg6%* zHTG>QZsvC}9(%X-n&yNsJ&Vn=ErRCPuo^GAxPOmtW6QfQrboJ7ngvDF}JVK!q5AII~CugW*A`^$35N>=;6 zd6mN_xX?cK^X=0cH#%*4?NhdUYR3dI0hQg)WF(((&*mwaUbJVq!@43HBcGKLj}FvL z`lcGUt^HDZ@RRT(d1_nluTXm5eRFS8L!8OALWPV>#i-N$a(}9%>jl?rWndC$U`Xk+ bWszXmq%l4A?g@!Spt8u*)z4*}Q$iB}@oum0 literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/09.Handbag.png b/resources/images/icons/Black/09.Handbag.png new file mode 100644 index 0000000000000000000000000000000000000000..d12348df107e1109ea04b9ebfe15d725f02a1065 GIT binary patch literal 1613 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 literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/11.Notebook.png b/resources/images/icons/Black/11.Notebook.png new file mode 100644 index 0000000000000000000000000000000000000000..eb8bd67354a14e5ba9a2473c2e7a01eb291f742b GIT binary patch literal 1268 zcmbVMTWB0r7@oDEghDkaHa97!6Ivqa?%Z}~cgAeu?93)z?51(EwZSK6XHT+2GMCPr zB%4TSNQ`W$4~>l?ZQ80x3$0z7mw-1ch=w47wpyE3Dx?uLB>133C`CMz>_#6#9~@@p zob%8BegA!qb#}CG-&VJcAc*aWeM$v>OexuS{Vou zhT02LP|Xe>o`=l@u_dRcyHR&?zo=P8K=pJ2dBetNf@p5d+p5+F5y-$^-HejIfBYE< z^lX$o6iU)bTZTD(--rXdMmo~kNS`KT$<`LooEI^H0g(#wM!)Hb`6#)@E8@K;rbw`+ zg8HK5x>McBP9R$j1fc-u*Jy?TJRe|!A)aUU0+wc2ipDqZXM$pg7uhfVWP8Mv z(pIvCPf;?5kS$Ww(9lp|hznRwFU1Ig;Bm05A8YvCVH2r&zv(uV85HPhj&38}GJ(ga zW~>1eC9$XLAsBWtxj}5Yr9|PBQF+y-m;g-~h8NeGwu@5mUpF?@cGJT)q*Bne1{@97 zqo<(^#<_dAAx{x|BOY*cTokomv9tjLnkb<}N&F>{)w5za$jOm7EAerb<|7OfVOdFt z#3LNb1r=IqD|2jyWkL$iDzT6vGi?kL=VF2!la+W(P-3hsgrzbzVY)~)HCVQ*W4k46 z@S#{ycA$zZCv92%4 z2Vq`jgABi=*B<>kE}X&vv}es0u997iu)y8d9xqW2$4#55hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>Hoba}t%N=+=uFAB-e&w-_YfQg=>r|34@w?L$pt0^OoJdMJn;iL@a&VC2h1}?z|2uw z{$UaW1EZIxi(^Q|tv9m_`3@QIxMm;WOjwxYR={qdC9_bQJE!5s4z5KT*xf5$FsK|| z=KC=EmzGBEo9QN{t7gq9zNsG(f16Qo<+|-sC*o2z2!|cqwIL?dPOP=>&hY~+NBU1# zZ}g2!Pd)IyB#GClkmYd?gXWQkv!>c-{;%NCO-ypod!$o;aUH8=qS#VrrTKygo$=^A81RNSwU)FU9EIqAQZE%)jGTY}bh2RNGtp z{9tZKx3SRHOrD?qiEci;3Ji=K4*xh>=6|$)yE^ab-}>*`#*0p^Iq@dq4N&G27+&LW zU|A_#&FCE`!CzGvP0@k(9l5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>Hob<9PHs-FZe}jdhHi$2uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_CocV;?-;AT$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!Db2?zKO}1c_0BzPy|8z>ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjwyM@>&7qYm@)&OZKgwa5eaC@|9yN*xa;c zODH_kp1Qv_UT%U{u2${e-LL*{;{EmD?$*+uPoG|W@yhA=jhnasEWdGcvRDHHivj~9 zhXVtX09NLN4h89-3X62UKDhCGXV`W_hq$jl6D0i@3lH|Y=kD85_Q8T@?w42RZw7nR z_&52NuJvXvy0_1dV?)^dpBvvVs+hXJ;H+lmPmu(MGcz8u%w$>74l3z9UHx3vIVCg! E0QD){B>(^b literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/14.News.png b/resources/images/icons/Black/14.News.png new file mode 100644 index 0000000000000000000000000000000000000000..f5689c8ab40b71003fe9b6c3badf89a7da889db6 GIT binary patch literal 1405 zcmbVMZA{!`94``JK{1|;;oRK19wrcX*K6;!l^fo*cW~n2aWJ_pve3I0u7S2kTi{?O zi;E__=wyQ|nR|&E%yg4E#-briCwfcfq9kZy41N%gZ2`s{F*3F>He0wuKahQ}Y5P3S zzyIIw|K1K?S#eh8vzY(@WO+(Rzp|q0vo2kEZz*aYP?n9dDt3GJt~?f(+>4 zs5-{aP;_hK_e>!Gq=wnbfE@6?f`K%C08m&IjZmR_Mh1gS9n0IHTf-M2 zkfrTVmDy|XMhGU%mb8gXMO#^AsI5MP(NNJ2urP`%1RNt%V3cd%B|K_}mU(eyuZm#^ zTvn0m?a+!-0k01v1d##FdZR96KoHPk(IY0a#e!@HQ3Ha)2IaQs5EE{;;HVW$T##Z- zq-$|M=}y>EPIf3P%Ml!gTUuK5Ek?Z{*1-sdVJZiT>J$x~)XK|LRL4u&Bm>DvA(4&9 ztiXdRBNY^yWILpIx)K5x@p@N@c`1=7C1r4wiol580CSug*Rr-G`hCm zpOJ(nF{IR^R+|JXxqGxBRZ;NH4MiQ8&1Ey9MiXgpxRV@fVG)PZ?R2>vB!RdQ#AS41gp(j$PKt+Y9SE9u0?UEEJ zJ*aM1n_oGsjt|2tGb1X)VKl{h03hYGhjdg%$7gqslznG-qJJ#*Zt6{VB#phFVjW%V zY@Cc`G=2&ozK8V5ri`)?jh-$)G}QG`-=)JRb`RBG%U#5d@ASRAQ#$LKO$ERg-u#`M z>PZRrH|Oln)oZd0rH@yAc^*&Y-5XAHbq}3)!&AG=+1Ze@FAvI}d#%MbBZkICpVxZE zk4ak#K3O`qpwSFJbp$+^5j${T`o$9Gz`kvx8hbpL8T?$c$;sW>s@WT>pcmpdi+_2j znVhT4?X#G*0!sgdItU`3-i+JAKNwK z?)H?%24}t)IyZ48aJ=X8(T%Uy^wQ}|SLTYdv5%L&)}EQW&P`bFjhmM?Jo8}R;_cJ3 zcdk{Jwy!%_0$u-L^}C%G$j7t(?2-FU@SpD6hG3 z>e#LFHv+$P%=Q1JiyxUe+dHwhlbt@5->!Slze9Te$I%D6Z-C&Qcvh$H+bQ*j=y8>i JXPh;`ga#AG*XB7`Hv3bo_7Bn!zvvN2gn@G8cD z5glYOosNnJwzjAgIoeVOOQ+On6%o84myeSF6GG?1~1Th;a5jJ^aqs%ofcm2bH@j(_maxY?PUxwE5sXx11%gQVa>YttB?6+^v9ydFAXrD25?$ zScNH8Krfxj(`ADg?V!L^frxJuA_yoJ3y_plu^5>HqCy0Ph3qZnBPsG!u^g3vBNxP4 zbC?R{dYl-s#hw(9nPKd57E_qo@9LP`MGz^9DrHi&RD_CBaG{b2al8(TC{=_?O{j4UArM3@QpqqChO1RFT!msX zi86%M+MEn&Gg2YD7S`?v7JnmFjyWijp&bUAE(vu&wwY#Vr?H@~^@5{+fuW&wafwK;_LdzCYUf8Z_CyB;V%7tH)inCrqx=UwV7r z+O{TPV4Z93o=ZozpX@E`yj%1fJDIq4)ajwduqPEsEAE{d+}o(PC3Cvx{#J`-S+c8Y zapUaI8gn}H+Eov<`TP7Q{&sO{KaQ_&qy4f)bNBo8>cH66@*Ujj72~>ivu<5W-M=j7 z5>`eGdeV83-(4B}Ve;t!F_`tu1YX?ro6<=)j}$*Uc)rpX@wi5`iP@!ng8wcw;t1>;Rq& z-EKCc=C))_i?4ZHIk#g%JiPNg-ZsdS2+Y4cF=MUzOoguwIP1MdBn_PPOjduwL8>*Q z3pn*t3%K>%f~obK8(|P~EEb1+>Arn4n`Tyd#_a0v>u!2Gs#4h8Io(wh7__l(ui@r-)= z@+C=$(4ItSqW9{J8HGFbekIw^vgYgZY*oX#g0>3lLBpc0-0V_L#+N!g#uPQ}d~T09 zUSx}ov_!W$Z3J9yg7ds752QN;sj!B-gEeZ@SN4tg`4A) z4d72*Jr6|*$>47L(+5|=Rh$dh#$|@d;+;7}bMKR{cSJvUtnKGPO10O zN1ei>TN1iJ>{fqd^-}Nb1XmrowPi-{?cniU z{rAHv&%{(N)^?{|*NlnWc#ID$_3OIDu}2G^Yldn&4>djONj@}CQPNJ23I`@hz9(|u REuR_uDQMN1c#~?m=N}L0WhMXs literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/16.Pen.png b/resources/images/icons/Black/16.Pen.png new file mode 100644 index 0000000000000000000000000000000000000000..ce6e2e2ef5ac9320b0ea5e66ba6abe09573cf9ba GIT binary patch literal 1506 zcmbVMeQXnD7%yyKw=wKsOdV!iuYPQ7?R~Vp_HHZN^{#W(bu3$j2}C)rxAoZCJMM0@ zt3jb-3!sK2Y6ymmts#Jjj0qzqZexLgXf#ILz)S>@ihv*r3Ngsyb*$(ggg?C8-TS`J zJ-^@ceH*K*p36+nP1k5NneGa@MqSawqn)n4^GY}Ls>>6Kt4^sE>Xi^9aT?Mmtl$85 zfN9`rIL6nq>NBoHqe=1e-a4huQ%SHwz{DhUOyPj2qBWY5(y+*|jhq6k;2QX#1HAsp zVG!Vb4sfy61A9b@^YaxEiK~rNdD%!Ki~GRR1wcudPzeH@!T{kwQ&1+t4se2(Q1=Nj z1OgK(N}~h3=Tx1i8lVJ;1FR;qk%bWiz%UbHv0@lf1fVd2La=&cM#Mr`F#@##lNYF3 zlYI3=4P8EIOFcP2zoLi)1cgE&Q^;%*qy`AVaXi6+qDEE2D7OR^CTtAKh9m>c$*jbS z3NHkK1S7LTXjUAc>gl}@0;0!rpExK_CQ3~i6lO#SF~LwEkcewSTUKhgf8BVXw(M;Y zIjDw{g=UFW>rrn=g4NtT+)zSM^@dm|@oG_+CR$*d16)vX(+*JmV)F4m!e%j3b{9%w zE)>S>2x3Q361ThTX4Gt zU(NZ-B_RMzWSHO|;DHUJ5XwU0Hs@sIu-$C8;5dewN!n&}fsBZDxS%>Sk~$o(RUSH~(M;93Y0?`WJ2U2}Itph$^4t1F@cySW*e&2w zzYa|q+gdE9UJNdauFH65j;Smye=3I2St*5;1(uQ*pcB@OH~%^-H(u^pbKw z)-UvF@f>virMqn}+n@Pvp4;iw-(J$4HfYj6J8j_bkb!kx-vLB~1!XeU`P5Hq54z%atA;bvjBTgLzvsrc>E;iA z{`33#BJE1;+~}+$o4VGY5y9R1139%#*S?ZHhj(aAT0EL^B-+)!U!SkvtDUbcj!p%m zmvU!4uP0h748*#R*ZMP8P5V0i$5}CC*h(8J@?sYnjggA1*!d6l%@}U?iysuG6i_4m zqwlWsl8@_F(*>zxSiE;eH%aSW1U|j^P4~=QzC|bI8F>VI{&Noq0zF^BfU5F%;`Dw%7u~sqy5Xfa^l$;p}Dc?(ZYEv$hr@4Omx>@7#O(O6X7O&CuG>{b J?{hAX{sR!r6G8w0 literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/17.Brush.png b/resources/images/icons/Black/17.Brush.png new file mode 100644 index 0000000000000000000000000000000000000000..ca9b131d675dcad7f6546a86b9272a66ab08897d GIT binary patch literal 1913 zcmbVNYgE%_81B?L!BL@z$~LzUKmq9`X$ftlvbJfVJJfO8tPprQv9bpsJmH*XVRh@BO4G zerAl9=Ubi}4#!IyizTuv?0&|KX5a5d7w%>ke@30cBvBbmHck^9g^@}p0Ida|Mhn7-d*!AxK7x$wBsuz-Tg}krJ^= zs)iMa8Wtf^2$I6ELMBy9#jsd{i4>Y)j#pvXe2dhGMuVv!4FsvhN|{Qj!qiF`ri4|p zNX0N#OWGKmG!VmfO|0D^tolE(sEQ_VhN6=x$~@cw@tG7u*)l0Bph`l35FKtXk#0e# zyFf4E#R%H;DPh#mlm&R6Vbt^r4?CPk;hKuiQ=5nd1`1=cCbPNeHW^j+WD)bB36!j7jwJk)Z022x4m{W8B80qx$2HZS!!wW zTYS?&gnd!2*;?5*ws;N@x4TzZQ1Rd|vcg*z&~l(IN&3)3cPxQ_dgt*?mvumktA{s! zK-*d43iT_wUa)veVY2tV_nRT*S{1)@Y=vUuDuU;d#gcW+t7-iiRG{qRZLfyrViS0C z6wPIhCtRBE@F>^sNqe|q9QaO7R~{D4+e}6Tv^MHD%<_Lv;_7fDgk+DKQJv-lPixNi z#N-7ve%9xA@>)<__UhW;!z=U@>YTe8Lp;O>@>bWT*=~r7&8CBs)4j3O?z&&R%Jw^c z%59f}r%!L~I1}NjtiE-J?$Mm;7KcApmQDLjyLEDvIA7nrw{uDT=ZMDQB>_-*H^8-H;frEeV}n( zQ{mM-8voHY-QTaofAJs_*HpMe@mYOwsd4p zU|G5KilYk^e88RF!rfB&UT5_BX~$rQF9;;xuS&qavNSCGC@@%&G2y8H;Pgi*{bZ#$ zfakL>-Z`aU;{s_-k$w}l4ZGbOC5^dwD5$l+`s$=9`rx{;Ew?WO(-S<~7IxrIKD34yMe0=+xk8eC}gRLDY%bIvOC!F6O_%%+#kLa0X zbKP)suJB%3(RZ=cSGLku*3%F@@&dObYt}85cGr%5ld9I8>Q!@Viq~H|(iU|RcD8#; zcaqlll1))Xg9YsoUuv=W=VEG~-g(Qsd1=jS+mP_aPv2<`zffpBju@wj*Q`H(Q-C`| zOYRy|2d5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HoZp1j)n#<&W?$S+WE4mMNJ@J&q4%mWE%f+7gwUzgOP%(B!Jx1#)91#k#kWnyuGxtX(}vx%dn zxf9gq1{TH^CYF|FKySI2o4YDO^`?*$YWhIO=!236QgVR_0n;Fe2~Ye$4m|s$<^l6e z5ioNsu8K2cU|@Xd>EaktaqG>@*t|mqJjXR}ao(C9W}{p+@otf|Q~Y;>Z+kX+K2{TE z;=5outND_dZrQA-%t9~q1zgwGuY7CacWv9-M`Fi{3YC=`RVJ_$sVndo=TAtT8QyUE zlj1&)gAvVA7Xo9rLfp3$uD!M1DaWC`f$^8nw!9Jr-hU5SLssTzdC9r8nsv3CTM4}M zOX28$>f5?)Ua7*{`KK=`@;F?Pc=KbI=bY8wcCkoyA7qZ}W?LfMTpQod`9!GMDt_3brFR$;GQSfro2f%UpjTfKJO{&I$7Tel*U7^XL}2X8Q6bP&-HHz;#( zQ+QIqXe|GP>xhJppa_THA(pn;U(Yzs5Rj4hx-X>Mg!!VQLD;t@LH{c^9yRwk8hB4> zn()vfvY*|EH8CLD_pF`y>x+&h#%T+G24p;Hob_6+GYRT*?#U|Gu$kj z!t^A84EWXG$Lc(&LnH~Q~gO3bKttLZN}H_t)n#N38I bTm}p&E|)HD6!?D%RGfOc`njxgN@xNA$KMFx literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/19.Pictures-Night.png b/resources/images/icons/Black/19.Pictures-Night.png new file mode 100644 index 0000000000000000000000000000000000000000..532e5b34e944c18493298636e8aac8c23ede940d GIT binary patch literal 1496 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o&*>5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HoZp1j)n#<&aN)bhHi$2uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_Coc#;MHs8T$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!Db2?zKO}1c_0BzPy|8z>ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M06X=rk8|b5|v(-V|~|O&{nOeNgg1N-i)VU>XE5;fWu}foGr8JYb$F0%ne_ zj*_Vi3`}gEE{-7;x8BUO^*d}Ja{O_ZD9g!99i0nRmM1iE7ijS@iaVS-#bm7O@%GkK zZiXxg$wQkf)~&hX`B(I~XYR}OOLC{|oB!ADkK?LUUB@n{UG#`z;8b9I;^5Hd6Ys$B zQZymj?gg*#7ReP1xi9?ZWi^|ftN2~n!Sm&sqkKW{6)<*x_*XiizKsS^uqHK`I_hc`l|opu-lx^-*)-zH(|T)5bwNRxqQK9 zLy;red*aH&0u20C{qO(OxK84Y&dfEA%cmu!WUoIhSa~p;FRCHW@%RGa3r8oospMIV zS%U#3$=IdI9#hMI)nArlcR^cmLA_5yV=}ySJ0k= zw)%fVrLJ#&+OW-M`B&Y`oe9$)%S~H<`NaJ)zN!Pi(=T>BVYUf7QQkDyT3OS={Bxk{ ztr;Jg9ew`ZnZ9^?fkf2%iTk20()qzr^^Zk@f!o;ha@G!w+n}=6)78&qol`;+04PEh A$^ZZW literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/20.Photos.png b/resources/images/icons/Black/20.Photos.png new file mode 100644 index 0000000000000000000000000000000000000000..c9f5fce92aa0486888c8c1a8a5f3010664219494 GIT binary patch literal 1867 zcmbVNc~BE~6i!tXP-;9tLMbjwP*F*;2_&18fJru7N;s8cDs_`Au##lsW+4HqML>&) z7%L-GMRf2g9d2v!0F`=RsR!D2@IoTgS_V)?ZJp6#Hww0YIR4R{-TfW=zVChS{ob41 z9HRZo;Yb`k^6ih~WcuwDQq)KfEJ~R~#S>|i86`1>OiQRSAVQC(V{sU& z%~^8^3t})PX5a})R8rJ3iH6W~P`eGsqBqiL1|ulMVnj8W7zL=Yble~XADui60=QNR zCI&|FqKpbG0}sz7vG`n7f+japBi4c;!9b8jLKEmQ3I!~BoxvorNWs^<5_)dm=7PX$ z6Dm^*z7dra6$2;;5(5G`0)Gt;f&ihA0|f*Mh0tPv&x80}9(@b_p#VvsP{J1hV;4w! zBeiLgI3#q;7rl~#85CudaJgo)nPV1k2r``uiN#_&2cPdxTlkxD3>0edH<*0J84%2* zA#o#x69&M}h^mP!N($0S--MtyMn%0PHkif|MW>8wL5*C9!{h4p_PAbKo2WSKUm5ST zHYMa3F>V}YBC<#geI98(<6t^>?{{Q3q}52GNt`|uREH3nEInqRA`mG^f8l6xtwayUSO5oz#X?#dA`&UVF|79g zWQ|LU;o8gNKjkvMMc1Hx`nLG##oPA540O+sbaTWexK_|TmlJ`=5-hg{Q!Z!DlFg33 ze#F%WckPPNEy3fRfAKmuJ?5#pHKH|1DLvq}`linVq`+6Tzd_9JVfb#SxFiGizpk z>*Obzns|b7{Nj+{y1aw=VAA1^ih_E#8~5W1KX;ncz5PpKh}9U@Gi`EPSa{j0fTev*@V;gJ}+5|QcFxsYsJ^Gh6b?0U^ zZ!Ju8Mzcz;X|L6jKgY3*ESs-oM`5u1tA+{T_j}lIv{S5$xBAdr=80low#$_;dBN2B z4?NFGZLvi~sma-|9QIG?yjj8g`pk9bW{&b+SH*UBl)3hbnoH!x5b`2V_#1%jG+ee# z+O+4|QcI^rQ0U#hFhu^~Y;rBYo;)m?xO*jX#?bEAwD~?9D)OB4R>}xT^_GWkQg>Y$0 z@Qup*e=qLZSl+#dWM#8bQ`CcI%Y%ktuNgL@$EnVar?2|%Fw#9(_YPPUy z>$-oyEqm@A^t5krv9+pW;Lt{Drkj&PYD1)V?DP*s)yzAaO`Coi&be?&BW&AuVV694 zyG;0}=I{(Z?##A@tFDxa5Y9!5Na4D|{^H$#I2q-$rP8yO50S~XVWcl1pIb^miN!sJTrDeMJnv%vd7w~-U_dD^Dq2og}@>}w=fsK_l zf5?npxp=VSQrpn%NMIl1Gr#f^DzDn<7S}k{&a{iHNUAwI zr_8#jaQ6}QT^$l=cJS?&-X5%m*-FpIXRPF!@@gv_`Pg$7yR>%x$idq;d)!wnten{6 z^9;5{!G#ZgcMj`sx;2>fuqY^0>YFx@ub%&8uJ`g61sjUL%NR;m1$v)vJUw9=!+pJe U-lc73Kl|@3La9RP literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/21.Music.png b/resources/images/icons/Black/21.Music.png new file mode 100644 index 0000000000000000000000000000000000000000..4cab482a364518013a1c3336879de0ae2458aca8 GIT binary patch literal 1545 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o&*>5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HoZm`u7+-whUPBLhHi$2uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_CocV;ni#9T$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!Db2?zKO}1c_0BzPy|8z>ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjw-J-ZuAMsMW)KzC5u3I45wpiV z=M83IN?8UsG+#0QU`i6z_Y4R=@r!>>>xMVy&b^tFa@~Sio_lxk@AUICjjM%@f8KLP zW6GXP_P)mwTc1ar*r>BkPb{4?#F2T+LG~5RmM^G{M- z0*RNj9|+uOo`0Yv{(#{P#>op<&b^GZ%~dpBz~pzJI^og%2T~yiH*Huqq0lR2yRaGm z@hdhe=j`~x4oXF^cQ-!we;^doD1GK}aH3BCnTwKb{bw$%s%H(`>-zm@^h`gaefPs} zY_|E_X3YQ2Vd9&AVlfSF^YwX_8SI}J9JSTBDCpY9)cls)?za{&EX$Bis#A4o|D)Re>G^q zYwg?H6f1i>=LV)m?3bIK>1rBKcC5wj(z2>`Z5-z6KNqU6nz+fB@AS<;z7@W~?j4`H zR7HaL_IzBl5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HoZm`u7+-whE6WdhHi$2uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_CobK;?-;AT$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!Db2?zKO}1c_0BzPy|8z>ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjwVh^e#|aZ06*2 zSw6rkR7)Yd_k(=w7uy0hzXKe1YIZJIcJ|!|mu&|&iqv!6+W9{2K;1tVF?pW?1HJ>Y zGtQkp{gErrQGCm%?bjCZoo|t8GS~bgYttlW!8F_cYe&Bmo6;k>H|uV_DXw`v(eTE! zV{$KdOv`uLlr&}CU!$9QrSF^M?@6iN)>*%E>m{SF;e|?mLQ~G3OIt3$mDp$CK0`UD zjBBC5GmhdG%R@2?v)3-4z`=7c#npXt`hKzbf4}kSMD4DdEYr!|Qj&6(C#G>(TlU|b z6WW;+og<5557l{d7EV>Z8T@tbgU_|?pJfVFU3M$5ElU19_r#qmHzu$3tr7a9^Lgp9 zdF#&j+dcKzlCrR?jT3&D8B|b^h)A3{H8cXw?i);QpKU{Sy hKjU>*h^-xq1VhEN+lLi7y~;sFo~Nsy%Q~loCIAE%?VbPt literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/23.Videos.png b/resources/images/icons/Black/23.Videos.png new file mode 100644 index 0000000000000000000000000000000000000000..04b6575e4522ce4a97bfcac72c8d0a32f4956153 GIT binary patch literal 1383 zcmbVMZA{!`94`WnEkMqg;n2xS*=$UgV!VRzO9bC5K?T8RH8Ku|bDqMT(6|UeM zZxaXE$PxlEFa?Yl5Y5!E5?IAnbG#jTFgXQ* zoX-xGn>_|kh-3p?L8Hie8w<;r#u^6mL3szkTp3pgf~-V?ac#+5{MWJgcfvF3!yyT|rkn%*m7} z%`!ZJR%9^>S z96x$0Tk@ydE1OTZ496G6G1v2|ULIO@dg+ zK4D5M(In2_dKh`58Sxi4&wjkb7X+9O+tcpv|KMeL&y}IIOe%3UJ>Ila~GuTIqZ5 z`Gty(Z?`4g-HCSt#KfCj+Gg9x(4VPkb!}~D-knTH7nfJ2xf`8#pPgt<6<5dZ4|Shy zTS@7=ox3t|LhcC@l6L0M*V-9t)7qH-&RE71m;B|LlF0)&^lE*H?VhPK^K(lCAj2MlO1@RLB_33su{jl)CrtR}Q z|Nei!|9khhx3$((*H>d0RukKcbF^%N(N5Um^uV0%0!&Uh-2jhS zdM`)-JvH$B1<;6L>(XYj6L!X*lnlqBbYF+cTUmt0u*Rl*RyQ&L;@zOvv?IjQ>}diw zQxRfUFwVrYDoC5#2VKxH*p@T~GlrNVnzrGMc?l6%0P1+&>a#s5A0d``CA9a&G=VRx zz)XZ#ajG-kj;oFf@F2yL2E($rAW&=|C)nBfesxv={S9*4rot1(DBkv7FRn2{IR%hn6@uy@C&pOuLfN61(0fS9SdL1uw<^` zK}b+pH6V*2r5HIA=EDI|6gXbiLZK*8#HRjF)@bAm?YGB&+NC5yJ?L*&n;#uk#|PMG zW?VEJ8v~gx3@h6d)8u4+;rfw_>(4T^Bbz^7I{2;;E__v3d~~L;i0#~a^GpLQyD1;K zwPC0-ShX;IWA5+8S4WiT&!&GEt8LY~sxN+h|N3F90^e8u=6838y~&-!^V@zt`tSo> z;6vqB?um2zu8i~UU*GP2=JwfUbK^{1Gge+Zd~)RQ@9zZdOF!-C7(ajLxbx@H^9SsS z%1rHr)?<5(mp?i<5v#_JJ(xLMUikH!w=2INnA-5(!YdW#7kBrN{p1)mA%5aae|cqM z^xE8u-Eng2S@zrqKz)mx-||P@wT7!x{OpPMCx1EcBkfz;Jvy||&^0#t`k6aZmn$xv zx_o2)M0wqixOvM`^0nm5)1TJQ)&F+#jXSqn7q4SwRn7JLXR&oyjePo{{M8-M|NX?G LZQ7*r+)Muek*2YD literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/25.Camera-Front.png b/resources/images/icons/Black/25.Camera-Front.png new file mode 100644 index 0000000000000000000000000000000000000000..0b32a561e617aa603861e82ad1adfa872a8cc8aa GIT binary patch literal 1759 zcmbVNc~sMO950@EaDup7*MS16` z7#^>;(Ug|Xrt7Dn2HGMbd^#eh#m1p|yqH+0jWFa=ERap*n5-(W{pbl0Fp(;7X0%?S zw_%jgG}*;asjh@HgDcmdB*EB;K#UXR2rLv!08We9YDb+au!|Sv_CB!~1iDn%Tow4* zsdRl3fYA&EM2n(0zfNHHMszrr>ei zwz!iDG_tG>6^k7XhsYrn(M*mQQYw``4j7K&G@|T_tSsS-vf9IY7;wsNU`#gFL|XwL zBauz#vnr7D^mPapn_mBh*lO=i6qhowldy>)kwk2<_~Po)wzDbJzizx$+n%<_Mu}4> zJDtxMxO&VF?*VhUd$%E*07C7S>8JM591(42pvwtyH7LG#IYcC~*ypDdp-Otj=m@ z39EtXv1{V&c4MR8iA6DnB3PP9qiJ(b2P7G3mbM#d8-S%Ez*s$DFj;+qNMC_o$BR>p zX(2_%F|-Bf$}nnriwAN9gD{y|Dc5vIE>TDoGNlrMrD|L**Mi+x^8aK_%sC_Wwa0(j zrANf|pl|!8`MJZJ@u95T%rM+=yyB04%*~uohpW?^KeT3CP7F>Ccr@ILtXT6LFDnv| z1s#py@wzodBPXvq?&&Xa-f-PJRkg)4=h!olU$(S_|HX}9{nPOa^d+9%wlK*1QN8UsuLqVTpOhGYzzQ<=Z&+CIQ!AEtXGqd z#6JqC{ibum-Ejnz7ngUEjO^nVI#qYNDe_#TW}R}ziLd*BexCN?%CJA0Cf#ZvPX(C- zI~&OMv;N~&)tifl%@6r}@QsT11K093CA){_xkm)-3aQTvJ(#?>E$j@x%-=Kh#gIMM zhTMb9`qSFbo$lJ{-d*@tD|+P?Z>=NS*AEK(lF3}>?(^L?_Rqd*;zxM7Sp=uYr}3hdN`=7-6npI>+tf6U@`8}z8l2OyoTw39l?avh8ar{w_Glf;>1Ju*DdI#RVY6uTvw(hw1RB%x2 zUliCYq`0IMWe`tejtU~LY{$Gg+h@4f4Dvr(9InZ*u@y;YR~{&Bx~{2#TN<>R=8oCR zs}$CqXDSEhW{f?t%<&%Lj``&KjSsVicVdl7L4$nAmM2$d&w03c-T^h)AL-n7V8EYq z>t3pk?a1wfnjPi<{w(Sqtohk5ZkI`3A$BlTzrRj2;>&%1gO;a<Urj{x29gz-!8(2(1B`5bcSj__%j z`K^a>g`SaP6#`7E~=+eg8$nOt9^U2ANn|-aPmeMaC=_vL9T0 z7QDt&x%fq>I5(p`c1nNYufG6G@LTmy!VYxU1{PjdCOYdML4~2oQ~E`wRwnIP|5ru* z!ZP%kYs1n{ht0hcn9!Ja=i90~-t&`EqOxaSYj2G#D?i5%>%f-!@s@~3w=Q##_k6z` Moi+jArO8_U5A~X#)Bpeg literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/26.Camera-Back.png b/resources/images/icons/Black/26.Camera-Back.png new file mode 100644 index 0000000000000000000000000000000000000000..b6e693544313a633e076ceea4669d211f9a0cf5f GIT binary patch literal 1716 zcmbVNX;2eq7~YBs$T8AVs9OOoc;G+9W1Y6Ve1 zP^qJ|UiGL$9Z*E7wZ$l{MJWmrWf8a!jet z{h|fq1Av=Wm#QEXvPC=C(Y5`># zO9sizB224G%(GxAc}c0NJiUsmro_$%`F0*jV8jR|Xg3;6R-Roz8RO-VdzY9_0moDb zy@2xCDTOQ<6yX*OWYHK@6$HZ|n@xk6EH)dS3nCDV&>`|>Q(-2L#pWR~;P^!$ty$Dr zJh?c2+!lEfP_zVL=F#akn~i2;&~S@}4s*F&7YBk+Ne!ws*F-4oRFgG)f|ZzDs%=fp zHDh!+X2r8DDzY9~;S*pockedjQY5|MEw<>$q9_ewT$OFaOoUV{ppai^YMq)F!(@m! z5(H&S5QxozVGe?zT#kgpKp0FhgvL*BybX&;7$UZigNj9PJPb=1Las zNLPVg$1BDxx*SX$Z^4b=ScZAJw|Ef47QrGW%8e0@M-Fiq9442`Mi{6#CPqRT$EyEN z*65@&bXR-)r(GsQWDmNwZ(@TT%{i2U1JEJl;tnnyZ2L}0lQZ{(3u5)GBbGO<=)%W|&RY-(K<&yF< z!U)RqhquLwJz?!<)Z0(?w_aR*153C6dD51n>FU1t^pHp4-Xk*&%hES1JmrO3!FiJp zY+<^EiEDwLp`M0#6WXnQd0jiDVPMysQvaH>KuL9P)aqqmSW|4@g7U}o!LA%=CYb)- z@V$lZlXLucq=B=&SN0Z7VzfDggRJ9so2M3RjPucU)|DFKzL~q?9A^(JQojw}q(w7A zhkl1TFztr+Ydf0xl|C0LkLK|zrs8(rrBq&iS{hbf|8Tu;gdu6^g(cDYfaTBf0*XD> z{?;_3uC0`|efo)WHIAzpgAXcC+&uPe@U7~5K!lS;4N0u1-~W?)wWut)>H;uhj`2Svb_a*r%xGu2kzgB54!Z_T5|$mJRLR_^jRe3jT0< z+LQaf1Fw9T8NlWJICSfyy^Y&uB<{W!yKkp+wbrA-ZB%(pP|SK9Nv$}tsIl5}D5zt8 zz#4w)NJ-Jv=KGqF`xnuS(FKq@v%q&91Mf+oVg44vCbWPGjc%=~=(yh6 zH4t}5GaQjWoQv%VJs#{h-9F@hranF?YM!IHHEDSF$LBXa5~s1Y5JJbn@>j~@ZH=!i z=_VwM&GI^*RV>MRTs4br^p0(hexZM|t5p*l_#@x)KD=sJR@SDOjqp#)>%W{S-Pyx9 z`}qpK!t3YS2H%jf$x-?{9QT55hpj#t{M7w$QO%`*n(hS0(|onh9mnR>%wf;Znpn?n zf9D_C4_(k)PPlyI@6*{=kLC3~L_>nE1S*bu%`f&IY}oh0Ik@G@4{HKxP*Yf6;8%^# zCtoiq3-931QiT|8B?FK8h{L}E`tnOD(ZUG9aDV4w{FmitJA+%UpMTIlE77xF6!+2# Y0t{UhbqCf*9(4Ujq>?0YtuUkTAAcT`EC2ui literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/27.Phone.png b/resources/images/icons/Black/27.Phone.png new file mode 100644 index 0000000000000000000000000000000000000000..afd67de8306495a2cae0d6ae996365e39ddc7164 GIT binary patch literal 1342 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o&*>5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>Hoe9sMg~T%&gL%8hHi$2uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_CocV;ni#9T$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!Db2?zKO}1c_0BzPy|8z>ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjw_Cd?0eV?3rE#sHKKRYEaSeJQD*HO{S zNi|sDy^lrwZ_e&_+BdakE$e({a4m#Mk>%z0TGpbc88u8A3{$tXGCc@bF~PX7uY)&X zNrU-SMrM`rtla6%%B=q$vI+zTJ3a257+j~(R^YNU_>Ozs_8rMj{@u9sbd&qGj02ZH z%)KXcZ-khr|i$Zr}TE;?Z>+ z)=3%-OV8RY36czw&HN{_*Y9)H*@zn1m!~JL{#K)W=Cd}}aGvI=g}*k=F$ literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/28.Tablet.png b/resources/images/icons/Black/28.Tablet.png new file mode 100644 index 0000000000000000000000000000000000000000..6806fbab3d839b42303d3b358d3c577eaa7f4483 GIT binary patch literal 1366 zcmbVMeN5bB7%!6uOcsZ8IJPOZHwT*C_1e4ZT{~{%t}Wx72Y9eRG%=R8aOG%wYs)xp zW*KwFBhkrMG(??IB4aWI)GQEm%gi=pPF$9oY^YHe;$q^0VMuZ=Bermd{z3MKP22Z< zpFY3e^WC;+qieKExlU_l6dv$!axD+~ zM5dk(@C?_oZ-OrZfct_%RgG5Te}-UX(ZU!ymWUYE(Ew0X90@aQh}XbczFv^r(CpY5 z2oyLsRPFFv{b7<13Z+qnuZ)&evC$BVb5QXvuqZ<41R}37U_@+`R3hSrmUsz$Z-`+C zTvE|OZfM!58h-^y$_fuUEH*Q1MGz3fEQsBKVaN^;wIV2N)o;v<*a-(lpiVG(LAo`C zt0MwbNz#^nazjB)3llKh+}vzwwpnDQ9!78+H#kt#tZSIn7D;0wW=S=r7${z46(Ot% zvIH88Os(9cxgp)ty>^(nX^lj7F`P z3qf2c>cL&K%ZA$Ql+{y`;#du9v!hm&CcPAilpqLg^WvnJq-ZZrc~KH~dQw=Qq-u=B z@+rH5Za0bb+!ITX3eRY=QYFicsScc2iaew5pG1oedq+TTAlzpcXi&LcbF^flrSx$0108USL)-oV;VJ)VCVi*4RF ze0BGQS6-42-_36CUw<q5_dH1#BWkZAMQp1+$ z;%@^Przd}*q=~%D?FViGBVBiU4tARgO{>awuVZFE?w>WZm{po@mcz3ezvvMk;u*8bS*cr_19~kw#`rW#=Gm-4I`biPsPjI`^LvkntHF3hthzI Xg+H^u9ZhdF{&YUNjQYg;;^BV)qRZ(W literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/29.Mac.png b/resources/images/icons/Black/29.Mac.png new file mode 100644 index 0000000000000000000000000000000000000000..35125f12f5c84bd3391c3a7ec19240513a402e03 GIT binary patch literal 1350 zcmbVMZ*0_L81ERuvJ5wf%Q7&t6f=SBuGjX~YrCD}uI+b5-_SSaX z-9Uvo&9+1ah$G?$lerHJgM=U-1_7du%5R@B}Lt!%oky%~_>@6{h zz_Spu#f{846%N$GtfotFrJb;e4h(}y(vCSRNfN7oaR-K@4seq;%*j-e4DNz67Xqy5 zk!Gfj^JQ#-lN*VdW}HFML?U5N5Oz(Eq8Lrn76*>o0K#UZR8vUWRAWt+fs+hTm*b|a zsj$T;G->Uo8v&lqg`mU(fq7!p$RrA+3{47g6tg=}MX}m;|*Cr;0?1`mqAg4R!$S!6-hPyoErgO>=8M_xSRw_@wkWNaR*6Z z7=_~=n&K$}C!CzaV~R#e5jX6JDD2vK;TFIWNxAE>Bk1uNtPHic;3D z4D1q4+=25f|5#my)g{5y^pK{tW;>uZrkR=%)8a5&Pr_>hf+(w&V4YQ1K zpROtJY=#+m0S{axi?L1*?eb$B)=_OVE{Udn; zqu<=fIa;PQM9SCmjrTqdHQu4_e|~o$aS2jxzG5^Ud^pzl#qAx3*X;YokwZ-+O4=Lx2UtI3tpVr{xvZ)ReY#;OX%RScM8R=gPp#{ zZI%1kD`&h7sotNW-}j9UPLH)+kCmjaRml~HW|}YZCEaJ9et)Pq_j($8^lP#({i@RQ zo_lgS)pZq5k3VtX>vQ8LPS^iAIdu1vvGQQw=pQq;sFpn|jw7p;w--bafrRE->mhMzirJOAYFkrT^B@#NpD?reL|+eHrCFFO_O#%B7OS`WO| zwVVI0gu5s1VUl~#MpIXp=1yM-PZQ5|7KlGADu6aU`O=NjhFh@pXY=zx?o;p1&VK-$ Cb=P?S literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/30.User.png b/resources/images/icons/Black/30.User.png new file mode 100644 index 0000000000000000000000000000000000000000..ca34e592e9594c0968a6537f73f2fd10ac7f03af GIT binary patch literal 2207 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 literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/32.ID-Vertical.png b/resources/images/icons/Black/32.ID-Vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..88c9787f1b9d84485793c99cd29fcd39ac3b466d GIT binary patch literal 1682 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 literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/34.Thumbs-Down.png b/resources/images/icons/Black/34.Thumbs-Down.png new file mode 100644 index 0000000000000000000000000000000000000000..c37a6218b8d9e1ff845f32ee11d5eed7a2f78756 GIT binary patch literal 1827 zcmbVNX;2eq7>)163eUJggOd3LG zBz3p}uraEm@a3csq&)o)g5Ic5d?YrQ1`RInGl1;)az|=z1KF8A=tled{WyK zw$g|(LogG*oX}A9h;|D`J_PaEY!Skj@;Ph{7iEe32RS~4xT7Lr91Mf2|(0#%K9xQ<*ToJ+(4@A!5bNE~Yf!Q1p%Hv7F0j&1_ zWQ|EV!?d->f7)eGMD?I;`?2|{!^iQ#4AjgJ)NqWMbZ-kabHOrH6lQMkS)>RI7fq+1j4L?5Dl)pNrki5mZ`pWnGPmj;%aqbty&2c;xDF{4xVWee4 zuCv_bOj;n+nk`?Q8}xLiOL1~kdjq-S;Y8*6{)OkVRoxEz%8Dzb5Bnr?j{U}0d5@w6 zyy)K+p6?%0*ruM>Wx3rk8C#Th3y#RRpA5TIk9%ufi{zfVHRJWoZN14$=?^D*X7$lJ zXFB@YN2?l}(b@xX3B9!X4r8U={Mjep@aoG0w_2rVN)!LIlsgzB1hY;Cysma#yJcq2 zg0!lcFOM|m?wbv6rX7<#e=$!UI5%XpykJUV=a_POS69%Gs1zO&`% zy~u*;nch z0$y~}IV(BadQ_Cf^~ao_$rcq)`&-cUs4yCK|8yv)+yzCpg@ z1ikdpkj4wi2ZChYz!PQICV1Caac#-9!m?p(S5=&~WE%JBSpR%4JmJuGq^s=f;2Kq4 z|55pdm?FR6@s+KSaiy1jZphi)1~%TELVv!k+hcwE;{K+2YuwpW!)Mg2XrpyH_2@b+ z#dRWM?b8~m6_X>MQxSR;kUc5s-%dzYSnpthd8J(N- zSKcMK+^%LSlXA1Zf2({j#H>ht@Jo5ao284ThE~|wfpf0jS#xA$ z38!1!;ZAUhuk0y!_M;V`f0s7l9sj{j4>+k|9Fkw$;(b@6E}cKUa!=6{uNOCl#~*%B j3p{<-S&)>yY^Wn`cp9|IL!S7T?YAY92B8(=$drEo=)uWk literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/35.Alarm-Clock.png b/resources/images/icons/Black/35.Alarm-Clock.png new file mode 100644 index 0000000000000000000000000000000000000000..12de647d4b0e157edb8204d3f0982a6ae3e3f5e6 GIT binary patch literal 2174 zcmbVOc~}!?8V>~}+yu~-qA(2MP)m*pIU!<_Ndzl5LS$PtBm)Gj# zayE4!Avm06nmk^NiX+x=q$&kTV%8z)6lx5O!-a(E)Dme1f&$4%s$9th@BeTX1mrR< zm`IPHM5qNwnmjC5gT&=V#!GWEq-+@&x&jE%aWDb}f=U3LB2%g5=(yk;UJkZ5i^(AH zMg`5_f^VG?M??bxl?DOmBwC=9LZt!>28kL(XE3NA0T6`>ktx{C2&4va=nM|T1ZFP~ zv!;=yaAIN6tS#)s1=CPe%^{Psv$ILrG?Ge_N~W^eY%>Q01!5Y3+8iY+(FH2CK64B( zqLpgoYE-UL0%k@@vMLMZf|#doLr|zABHj@zwX=!BQbyKE)MP4&LRKiualO&jqOr(- z-FUCIHaXG6z2gY*u=Z4IRm^Yj#jT|eABokIivlNID4TrfP_Jt&q z%Q(y+nt&yQcnl##VX&xF76kFwEFp^q(Sl$KPc+BzK5P&~hl2z`LRdf*QK>>2pDo}E zU?HCk^C1D7$(zH5E48RZDMjY&$}zjMSolw|9DxRrpejwgN|ia+0nuqHRHaQ*sR2P8 z0|wV5IksrP{b`}&aI1Fo)=WcV$OGz`3L0&+vTF2Fe`m^xrhXtJ z`JZrtLuuPF2eGj{@dHgp{U$0YGR;?p*XrlB;k|u36V9#ZSye>gi-Ai7NS{!~rriOK z0H>XWBxj_uBEJE#`}O-(uNNGBxoj89hssMMy15qN{cRd!7;r$e!Eimoh2*Mqy@03b ztIpX!QVRUXkAb%MnlZuS{;g+rOS-H&*SlODH`I!Kd>v09uJdhHt-F=L5B{|^#cl9` zXVxhQx`=n``P(wzOiCOFbPu2(C4Lf?<-D*$5~q*k(b~qDl!_K?*~=0Uv8U$J0)9)T}3h3oE8rJ@v$!Ll zk2o@PzBl$wZBB0}Ea`q$?E`&qsMnEr)ph!~C<$bJn{;jCEn(Hs11q1=mXsz0wE7au zDw?++m-7|+i>koqrmv$`&}`a>ok6PrPI-xaUroI&%bM{;qn(#0VeU}t1u2>lUCjL%5 z+aBuITL`SXSlvFYWnZh3AiK8ZBO=nXcy9Wix~ zdUS2mI(2RG!c&`_kBB@PUrd&g>txmdcz5B%6PM0{^>=@>BJNxHlALcaH4{DenwWj$ z)SMAhrQJiodpl+LvS&wE$-YANkHyTHke?kaf<0E|u07p+yMK6p?7hSyx0}U`8L{Cq zY4E}I#j4+z4W?vQmNLV#=S`xEEnJ4KaZMgh*X}86UGt4sX|>k;dW3)+OgcWb|=Ib#e1z=0Qjlpr%5-Pqrl4B-xhgQ!M8`Yo1|^7Uc~h7osY}9 zGyH*t3u)r8hZ;DybjokXbyCyo>Yzxz0Ny!o9+d- zEGexnhT3@#2~A(9+r7N$T&h*YmhQ%3IQeIx)5wO`U9a07hOU-0h=@bS(^Ky5!CB(k WEYRS46Qu*@KZ0;!B;3H?xa|+T30x}x literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/36.Watch.png b/resources/images/icons/Black/36.Watch.png new file mode 100644 index 0000000000000000000000000000000000000000..dec17c469d8936aedb63065fa1d3b4305a015930 GIT binary patch literal 1821 zcmbVNX;c$e6b^w3#e!nM3N9T3rnWW9Ou~=^5}IU!LEi6=OrcO*6v0RYIYYM3X%sn53Cuo7PM(B3ikO4N5vgh%rAV|`ED9*}>UcB)Rcq6d z&!YhpihY7k6-7iTLxmbl&r;iTSZ2MEL{lgMfo7vxlZX;PEE=yfi0BW0JwXR_S`j_c zSIJQtWoUvfI2}jlq=%_A>4_SFmL4bu0?a~^K#vk?z^qR)n1p5#{SB{>T-(HKI`Bq? zNEFfEIu)f12V@wI0=_IRQ^Ns40ESs0&liTl834oqAvTA6VJ65E`ocoU4;X&vq%~X{ zCyYRXhHa5M5j}w*j6ya$H8qu$%4K1AJR1}U1U3!`Vv-t6Q<{NLo0$fa_Xq=mnl!l1 zNa!#FU}IFrVkv}(PI~$_1iewId`E0B4JV3B8QZKjvOyMyt=HS)dZTS3BG7-`c(1le zm1acQ5vU1E!8PQ4#CeZ^$=rR|kWG>FMmQVSk(Z)QLNHB=9yJgOL_{Y~SX!M{=*Q#A z_;N@B%OMWT2SGjrNd$a3p9^t$2uBh$!tp*V5AsELGG7Rhfk7ZB=Sl@KsSJ@z1&9=q z3H&4@ScSnvs0|u)#IBCCJB$TCh!x6kR83&G3d52{Dj+-oBQR3}W&~t&U|_mZtfj1cz>fYmlA1ni9Jc+`|!* z@8)M$+M?ZipOy5@ciM0;@4C;?4UnU_>6kLCZ`$XA&f5z-+{&W{M|S)#n{ zJe$@;&0qEqf@Q%sAV%4l3r^ag7>e$rvI6TU3AOSnf`0#e|s^&HR9|7LP4A`rVW<9qJ19F<$lz|J6mg)JB&lRR6Ap zSCU_6+ApxntC`+=VP3H8^Hx2IE!9>RWz0Z%#APszwLciysdKE%I-) zpX5-K(x+Ip?j0be`$l3mYn*NOLv%OA)j7S6Wf*!U%4+_K`8_+H`QZh?=L z)>b#yE_-?ph3~n-sbqdZN&ex^>Hz8#`-x4Pipw@GIaj~mRiYi^zr$x!ci)N>M(Ft$ z+xI*7KPk#-U|hL}rj>`4IG@S`Hx?*@ub*A;(ABLkx8iW3)x#nhbm%^AC#EjU3gOMp z^XQ6u-aB@iud?He5Q&Ab#M6#;A?>S4;t1`1A z|4!ewVa$&)jw#W(cU$16wX>>X99LGAX4qY)KA<$vJ|+GrDxFMe!;>YEx9XqFFpX*c zs(AoEeW$lx1-|(6Vra4>`(W$i*SO_n@h>^%`x!OZLUy_rw#SPcky_f&$wNhDJ&eMN zGytmWTLW`w*QhZa?d56aen!s4ep*gtKxXY!dVBe~?UT6U9pbLm4f(q-biI6y?zO#; d@!DYm<<_Wk%g#LaJz)D`Ddb_uKIx+6{{VOq#pD10 literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/37.Stopwatch.png b/resources/images/icons/Black/37.Stopwatch.png new file mode 100644 index 0000000000000000000000000000000000000000..0671df92c6dbb0053ace86e9ccbe6478c04e4da4 GIT binary patch literal 1906 zcmbVNYgE%_7%me*K)k?o-liptOO;-dwkeHNY?}hztdxs@sLarYww5-vP20dxk7%8s zFg6dvp>y6goLfcFAqI5ygo(;Trfwc5I@}HBsl%lTZa+N!SWc4f``*0I^WINN z)C&`X1E&Qt7>r-ve(i_sV$SlHX#9APJ9y5+YXaW;XVob`EZ?++n1bE7e(0i|#3oxIm zkVXmc%&9Dunkgr&I8(^svo$;rWWq296bNA$jA24N5aROa8)kz7LM{h%Z2S(u5I?7hwgE5EaOUFe(QVKv2P#iRCgms*s6M86+2r zq$60R*+yb!4L)MmK-(S03SWvvu@-&zkt->@0vsb|K z7U)^LC~h@4aBYH>FfpHI7%{xS0}(6-|4-Jq zv@=|9d;F(eMnrTEdbiJ;pFTVvAKXmOjFlda>FLwV^vvy2qSAD#`+jztF*IdDvbzM9 zzF+xCM(qmeeb&7*8Gr2gaJ|?w>0o8$kWclKq9^_AL@BA;I(=JX6+so?>ORd-1+;)vGRi7L+mr6I>sFi?}+SxQAhXe;)J~! zy+*sqRNiXoS(RJ8tT7{fQPlxsAIbhU4cj-l=sp4+C%~2faTGQ($>&IK?Yu4HuGli zz=F83z#z7E2|MEBFD`6**w|Oq^f{VzcuMJsuY#x>`;(u%5w(1?DMuY9>j-N(LzN9G z#tw1X?4_SDw#R+#)KB;-($DE`@rc3LrdLZ&pZ;#uqV;FzMo+Kdzs~iG=xiQP-Q7_K z$gIAbx+ot{a#gX;XGt>=3@ESOskJubTuZn_jJv{`eJp3+_1TfW1Ffu6L7|X6>2Mp% zcZYa8Zz!gwbKdY5{49a?_+*PiOK z#C4pWclU7K?iB&Ij^4WDwu97+vbS8p|XGLQJrJ;3`7MB}jl literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/38.Location-Pin.png b/resources/images/icons/Black/38.Location-Pin.png new file mode 100644 index 0000000000000000000000000000000000000000..d8ea41f6b452cce563f87ce5f4e7c8b55f18f716 GIT binary patch literal 2131 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 W{;Ax*`l;3PLsTo~z@N#MuK5SDG3Ipu literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/40.Cloud.png b/resources/images/icons/Black/40.Cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..5772739954eeedd780ea3424ef31e779412dc59d GIT binary patch literal 1667 zcmbVNdr;GM9PfC|)yYOd!N)WPABfO4Y3U0%D}iLfnNB+RPSCo5zb>ZnNOVY=Q;SiA<7Gf%ltQK!7x< zz*P}CvCe`LS!8SxL!=fZ>WxL&Mx_Z{9tA|&5RSl1usC2d=TKI}rUEB;5pM4ii$Guk z!e*<$=S~@PNdQVS1P~#Vgd4>W1juAUNE#uNL16$ahG3DHyJg{!6p4@_upF4YK+YOt z%0N=Em`PjQNd;!HtOXH?3JMB@1rj06WQriAQt9G=;cyNSZY`u(+!jt*gWU`mVKp+O zg(YbUa53WPbRMe$IZvO5V7BOVFNi7YWTLo~iEOw<1PR3=v)L8b1lr1`5dXUIQnXcH zXdy%?gq6-?j9fi3g5Ano?p|%k1?0RzRx%`46g&r`jd^B*V&gCs$bAu-NE0HLN>GIs zR?D=oSf+p=1q`c|3avr{OQe`s9pmPBnXXi$P>Z!NilI;p1ZgE2C8|L&twxDyU{onr zyLICzD~nS`!flu2>`LXBMkZFgS{FeX0%vJPPt!T>4oJ$PS=yRKTL3gw288HvBT2ag zOI!td9xp~PWIkbvVQ4cjkzs^mZ&kgTnkR>n*LAL zM4U4sS9|=YUECtB2VL72&CeZPj1NI^GsAGhv3tt8N*>R{8HcI$w(Emwx@>=S(7jqG z>F2j)?&hwT;iS{HX*TD;wW7NCEJ=Iykg83m0OJ3A9EogNmK3^tEMNk%%yJL*#FyO;TveTMit(!f3Th3O6h z=rABhJul=67WT~;{VKiX{pi<%ygEJ3w9_qWYfd*%Co4mEi9CA9Ugy0h$qO=}#2lI_sj zPJPB|J6>J}6mMIk*?jm(*Dws1E3V_8OjkVhcszS|y@#rTEScX0&-&w}u@x~E&KEVt zVE5v|q*#aE^U;^*D&i&9rulxqG+?(ebW~jQcE7s{4u_vy{C{9&l z=O1^~?(6Uod~-f%sainThtQ{KlF|Km^^mgnlJ9u*Nl)F}yu8&lRp*)|O!-h#eoHrE zS$wH)@9(9j0un1JC#sIJOz< zp|pnvXD>)LT{f6wq)|KD5*CNe8rfy|?a_LV4=W%175V3mThI8!oB352yyt88OBRFk z>W)92Q^#t0lI7>74xCtk-}+wUyM7B_ezm{MKd*4_!%r@3EE=h>lZTw<9|TS;ta8Kn a(pFxbqCNM>kkiZcTZq#pV#hTbO8)`TQ*<@} literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/41.Trophy.png b/resources/images/icons/Black/41.Trophy.png new file mode 100644 index 0000000000000000000000000000000000000000..c78fb34f43ddcd234b68e7694b25277319f7056c GIT binary patch literal 1632 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o&*>5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HoYcJ7LEq4#s)6VhHi$2uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_CoX;x#87ok!2Xf%qCp8b4XNrKC zBlD&GQU(U5K2I0NkcwMxq71!d97XmCZoOcdwfqy}lGDECl|4KAEaut4<9E)!-Sd6l?3v&1 zom=O1c}p0p{r ze7eds*JHGIGt3RXtl4qn z%`|tb5QA^`g*$^v>;AlSdeZW?MqcG8>$Y?~7rvW$-xw#>+sTNYdow}v0lV;(vS-`B zybt);@?*jE7q`>)e@i{3x!F0a!9L^*YXpm%v+zRR+}92FxAJSpsd7CrEtna;lT9V* z(I#=u*HPR?oO{^&8fOc2ym;|N^v1<)%~zs$+OKE0HKZSy>f+RLF0t)T{0nK_*J0nK zZ?`3+WTli$cX~4A?Hq-PKYQKi*Gn#S6W;0?RfKvH522v+3d&(Z11bvyi{0mW@y^o=!CnCN2L3%T7~Vc z`6%gQl5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HoYcJ7LEq4Ky}WBZia@g#!i;bPR=f_ zPL?iCM$VSzjxfERdBr7(dC93TdozLdLiHNs)obNkl$uzQUlfv`p94z)0U7xv`NbLe z1q#l=W(pdZIEG{rNb2fA~akMmdg8JOR z!q~#Z($dVx*wMw@+*JvxH-(%~(+4_6ACx?hk_$`-m0-5( zP6=dHXl7wPex&-;llPD2y}awV(xD^j$a{llCWlYGdwiQ;bG3*9!$$^ZwTPr^7p3oW zoyZbpV>xwR#Q%?g{F4sz-xCxSKHHq0cakY((VAS#cSb5l*6D5MP}sOB?%2~5p8pfB zc0av+OZ3Jxj*v+l5&}Ck0!x0Dc5XT%9qlTaw)*rn<>@>6WRoPacU5HTF5)}YlmBS0 z>ejHdzd>dt9tZ`juJv(M%|p15Mc(yeQC)}HWmQjt3J zRG+WW#`*Y#NT($eZY(>UF334iV@Z0v_U*9rviMp2CdGdh)?5EOHMt}v;`71fM)&%g zr<%LRK6`f9^W|Cg^|u`NnZ6KX4vxJ10b z{>%ewjV+=(lQ>mOTML+0dQXw^;9bIY$SGH4kLIzb=JGniNjyo*?#$0jh!9?+t+0?O zX<6^#Qbr*u9`n1aZ3HgAnY|~ZQbA2X%^>^XL<7}*EqXSWQg|9Z7Jk>rd!#y{rp)6{ x$7U;k@wSb>QZq07{e9-%6OR?43*s5s7&a}w@cVV`!84$8+0)g}Wt~$(698YuFX8|I literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/43.Bell.png b/resources/images/icons/Black/43.Bell.png new file mode 100644 index 0000000000000000000000000000000000000000..1ddcb40bed250a028def7c8475e9b2ce633c960c GIT binary patch literal 1869 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 literal 0 HcmV?d00001 diff --git a/resources/images/icons/Black/45.Settings.png b/resources/images/icons/Black/45.Settings.png new file mode 100644 index 0000000000000000000000000000000000000000..2487c4f1d8b1e99531595bf66eed5c2db9ce220b GIT binary patch literal 1645 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 L5(OWVCKdhzXGxe% literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/01.Home.png b/resources/images/icons/White/01.Home.png new file mode 100644 index 0000000000000000000000000000000000000000..0aca105c4ba0f6da290f64cc6b369b385007efb0 GIT binary patch literal 1362 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o&*>5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HoX?kMvks7<_0d#hOUN&uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_CoZUx#87ok!2Xf%qCp8b4XNrKC zW;&z6`HWJ*R%$K`q=X^?iW+&Dm2NWL7ui7_vThuzW0aQT-pg zj$ntfS8-L*NoTGbU5&Z-_?Uyuz0HYd zg#DQ=wPhSqVJ~#NVc_XlBe1P@O6pmc_7;U(-)gy*a33l?yTMsQKrg#Z)TuM$(3Cp@ zd@i@&^KiEaUzD6Iv`ARZ)Wx9f>n_z}A`2&^EA27VRNiB-QhAQywz+1!)*&+@)bsno zkFPm<{`R|@=D*_PJ|*9Yx3`<&p4D^Xn6@H!&3o%DKPND`{EA`{>~MH-`kL*Mmuf;^ z>tgrw#q!S(?k!&}m)^WbIpkW01B;SCBZrH^oC(Hx?1JZB3vUnSJHfSm^DPG%)0RJv z9;+Uoe@s8e=ZkWzu6mAv%!+gu`2wby&U!r!+5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HoX?kMvks7<|Z!AhOUN&uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_Coa<ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjwW*blb^U~<;w!c<$UzT-;cy(Icn7E?TkfYh4!`egm3sca< z3_hu*b1yx;oPS;w5WbMw;`oE{tK(PJ5c8q-3T%$bWco|Go`kR*bfdQVVvM z`pZt#&1$-L<pa+jgm1}2i%CD?5l_&p+ j7hy{jVEY;VP5S`D^>Y*S{fh*9LB*t}tDnm{r-UW|)ma3? literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/03.Office.png b/resources/images/icons/White/03.Office.png new file mode 100644 index 0000000000000000000000000000000000000000..105b516a90429478c1b9cfce67b5d94b0412de16 GIT binary patch literal 1298 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o&*>5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HoX>Z1}>&<7M3o~hOUN&uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_Cobq;MHs8T$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!Db2?zKO}1c_0BzPy|8z>ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjwkORrlT$LlA2TQd7~kIaoDofB8_h!)T1?SE*ad{r#+^ARq_RjYS>R$0rE z@@K~CUcu-&Ucb6~JXTEoeEw5kd7S8xZK79oS1;MWW{#)ZuaFee6t{DK_LS`TY^Urz zf1=~92VFu<6F06@mCDx2`l@(o{l|1y-HQATj>Wfm)t)ffd7W6c6n vs=cY_b%i4HHeUSq(OfdnLRt8@cLO8Cq~t9pf39gY0hLmou6{1-oD!M5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HoX>Z1}>&<7A`K%hOUN&uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_CobKylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjw8g0zC9_qhDf@!znXi+!XDrLMT*kQWfWv=z=BjH2ve%bxmYCCQ=lyTm2KV_n zkCiwB6Xf@7PI>QmdQMHu-fWHZU% zR*q}>xKql>L-onUdq!gd=${MuKe{dxAw9H`{3)c9sKXOk+ zQbjj0&eLVT|A6NVyTE}+hUss*4R+=hMVmgd37W>-wd%>c?ems}Z2QP6GAZD0k1}V* z`%>4Cd*8B}>H|%RR|Ply*f!mGH;162l1od6fS{6-iwEQOkKdm4{r6+Kb=oX0YYB(b zCK>zBN-IxwX{?;MiBq#EcF8sGo8c~=y+HLw$xi=RBp4>IylgtX>?9|sF!Xfwb6Mw< G&;$U%@a{tZ literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/05.Tag.png b/resources/images/icons/White/05.Tag.png new file mode 100644 index 0000000000000000000000000000000000000000..a5d7e10a51ef393ff456cb7ebaa033c421057780 GIT binary patch literal 1581 zcmbVMdr;GM94{3R*}5y6^V}Q~!(^yylk|}`u?5>El{)IQbjslaLK|sD+jMDw0zN=- z!(#_JypEx}ak{}A9B#VP&G}$hA2>HXuKwk%n^P!j)gyhtRHSTYEkuqwh&T&(b(nO^;su)M^R*?bnehA*KwT4Zpt`7~hh zPzAJ&rkthkbkRDIXp)PuXY<+COx(eG^Ar&9xV?Tnpa;i!abX`8 zLm)7&!WZhnM^0s1mjEV~qXD&CDRaOG0-&fIQK?ZBc^y!|hysFz8NpVj)9*z2E2l#ntgK=~j<4nrPKIIeMRKX0S|b>oTJ zetW5phHSK-E#e$PJ=P>gz(VexZYZoMc!R&mF+x!&H^DlJJhYd$5PDGfB6l)QT%%H& zw4}m-k_s5rB8XO@Fko6zt5hge1Z*%zIG%*nnqfk1#t_1UkO)F5jhM-3B1j`f7!@W= zV~AiaUO!KH9dyJlBiNn5!cWEGCXS|fmb0_0JJJD5TrAJ}U91l$7#g*Z1sBt86+yOs4kKXRMfdY5$$L_1mX?U$gJ0!Dy5F?E16r z?!k^vLeAp;+fg1U$(zaBX}YJ{ z)OO`Y^cW@q#62-xRbK=i@}2r$b1&}Ejj8U>tu8#@NcKg!o*Db#_KZ2F0Q>H_!%-)D zh+{ROTk-c=InUbZL(KzmyU#Qoy?-F>!N+5LTho`FONF{0EFX|=8%7$eGaA4J#M?~| zKQpiEoLnub>PCa5-JjnM&IrZsip3{O9R010gY)v!+`s|p-qC~lO+nk4FE{oUx1iC)O1lHMnPOH)sD5SC`bZO1D87H76mn_*$>?Lu^t@Z?fxIJi32j*3P98?8ug1 zwwA}_h-8D`hRR1))rgJEY$S(7L*;FNUAirJW2kPa6RulCw_ zP*Me^q~=w19pA~{s7*~-nODWsofaq5BGja0_aQZzbZ)dx({?`6FPQXF%k p^JZf1T_`tw`kjYIg6-?3z@im{f1g;Sna6~G;1+T*(QeG!_zycuNq+zU literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/06.Tags.png b/resources/images/icons/White/06.Tags.png new file mode 100644 index 0000000000000000000000000000000000000000..d2dc4ff2b643422befe1ce1746eb1ac6e1dd9c85 GIT binary patch literal 1606 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o&*>5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HocZ6rWOWf=8i7ThOUN&uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_Cobq;?-;AT$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!Db2?zKO}1c_0BzPy|8z>ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjwaD z%2i{Fy8W$17v>#x|FC!qN8A*PZegFxW;f^Fy?Nu&f%!SJ?xxh;Jb%+foTbs6d)oK3 zBb(T6vVV1~US>Y)yg-s@3C}F%smpe{@d-SV3YnKSq10wx!@gyVE)7u&6qYH)*~=FD zKKouOHz`@JPSu5Zi<`!6*4)Op&Fcj1nH1-0oe&of6#X1~q)tDfE^=L;zVh9aUV{_t zrA_j$A5_|$cl(h2bjl~Cw=*LhTeRF0%zP6zwQz(U{4<^FyRe>vhCtBmh-Z-x_iewU zAkrc9Lgq@h$@)hvdz2=%^R{q(6zjRgossDz877cbyees?)CGyLnvcv9M@?CXh?~>5+^CRg&j6)kC<(s zCE)xoP;u6RYZB>OokOGr3MW*1*B)YNW0}aJ#4}rvwT)-uwJkY^Oe_^ctae|Bsqbyh zOs-FA4v?+$O|;4DSaNke_YBW-la?{eKKJqq=Y6#nFB_*u&)34&6hoM`r6tWXCM%kuaj>{i62y;xH>n7?RqPT`7DJFWEpW+U)jguLoeH0B(r?)Oq zyMBoCvR2DEwz==pGoDAgo9*B1Jws|)dCdFz!vBd6{{N5K^-cExL!iCoT6xc M>FVdQ&MBb@0M)QS=l}o! literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/07.Wallet.png b/resources/images/icons/White/07.Wallet.png new file mode 100644 index 0000000000000000000000000000000000000000..b713ae04a556d43f118cbea50601083f65fa6813 GIT binary patch literal 1531 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o&*>5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HocZ6rWOWf=B_TzhOUN&uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_Coc#;MHs8T$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!Db2?zKO}1c_0BzPy|8z>ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjwoBIdEt9m_WU)vw^)2_m!`ef`q^PT(e zWIA=M^5TdOZDo;8RQ?&r+jc;#f+6^+*pk1&$?w^O6J$)hUus?m4C`#0XupV8r>S_N zyr%(w-ivyF%cs%8O$uzA9+e*!kY$a%w0AMz^)%1m3u`9|c>G^f;e0_&g27JOaIWj8 z<(|ob%7&*lursCZxo5Y5?cLJZ`x`AJn78Vk@(9|OsHy8PizQPh>&P0vr86?vy&qiq z^u_OhOoraa#52MFa=oh>F3rCqA*k1D(imC5VYj5_dV*xj{)>uR8p=QL{Fzpqw!=(l zIn&c((*%(>P2w+a@kFryb@;vT-q|&7mzPRRJT4fT*59wdD0X1#-G+>RHyE22oO|46 zv_L#2g8fL-`g6`Vz9p6Ay96(&Vm+XH!EtZ!)k`9o+Lcw6Qs>=nZ~#Lk=ZG4}pC)-H zY9fz*$Z9!Ym=W-|cg>{E+6!LFJ9-`$O}M^H!>#nwbP0l+XkKIaeuo literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/08.Credit-Card.png b/resources/images/icons/White/08.Credit-Card.png new file mode 100644 index 0000000000000000000000000000000000000000..bb1499f693971ccfae6f50ce1bb00df722a7a551 GIT binary patch literal 1252 zcmbVMU2NM_6n527P^-emq)EUwUEFP~Qe($X;>1?7&avGtDk)VGw1{Z}$G&Z>)^=*& zENKR4LMtrWpbMI`fK+J@(}X%UX?p=yMzv|QLP!NF9{AZ)CB)Ant#7a=xNeieL$wDi z+xOn%^L^(#=br1z@X$bK`?Ku?L3G9s$w@r2-t$Boe(&x(bsZ1SASHuR_6RDf4kSd~ z&O#73)lry)sy;dK73?L5)|`>fpiJULL92H`c1CH2=XsBVWqsJg=T2HkE%_|BtH~fkS96R!GHeTY zjB3^{peTuzuBTw;6NwFC%WV`2my9l{d77d8v}t;It$DjB3ICO`skfV+%tJZ}UAy3D zct1wEnqXYJM+fp8u^Qne$H1GSj?1=IFrkIwa+JhhDBaM7a4;Z66jtOE*3U&4Cc?5J zA5kI!HV~BkVtLf#Wu? z%p^zWC9N3>wHN)}@-QEVR=PN_UI0p58$2P%Qg#}|1 z1z}ENq@c)$V~x!Hkw7HK^Bfxx<#1Rb8(97SRE@@BXsDvFOxp@e>MNzyp2p$l%=c z_FC+$GW%)mZr^HrfA`GdH+vH2nSGV#+v0m#ww@ri0AgE9@*H>Rw0?4SWoJit;+J|o zuv|Icmc28RexLfHYw+zKs!m6Dn*X)tEYa^}zFz2E-FNTZvuJPVQuV3jV`-4O-~DRO z{BriM1vWx{S^f6(uD@R)ZqH7=+;L^c@yn-72N-0uB%;>wVGE%w@5{{UHeq!<7I literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/09.Handbag.png b/resources/images/icons/White/09.Handbag.png new file mode 100644 index 0000000000000000000000000000000000000000..4ff1b390128b5f384d2e387e537ac1e74869ce54 GIT binary patch literal 1627 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o&*>5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HocaXh6d&q28J%qhOUN&uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_Coa<;MHs8T$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!Db2?zKO}1c_0BzPy|8z>ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjwApm;K%xAv+=J}EnfwnGJmxFt;;B%KHF@5W3$+~gyF#jH3k`c(A>+kVHR88xdv+`Qd$)HH1UrB}?B21+Mczl&EeuWO!m zjlIi)A#<6n)cyY;I)P0%-3=XfkMIMa8-{(_D2jrmNj8DB~{{9@jS zZ@baLQOSPqTB39H&%X!jj5;Q0etRxdtIMx?L|<7~Q84O(ZIZ1dmk_7sB*sVDF2{0y zq`8_ZuKVp0{^SUks*0K9%q_Y>Mg1ZEEsHMKx;>lh9lm0X&1r8}#lELYwM&wY>M5IY zPW*Xf)y^#`_8V>d^=5kfE(}Zu>>1dTX0WeiXTM&TeVL1eM=@>Wc9lbVs?Ny9V3)r1H9PYvVNh}J>FVdQ&MBb@0D&x2XaE2J literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/10.Folder.png b/resources/images/icons/White/10.Folder.png new file mode 100644 index 0000000000000000000000000000000000000000..aa238d52b4b3007a7d7a923cd948c827bbe9e832 GIT binary patch literal 1286 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o&*>5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HocaXh6d&q2Bt2~hOUN&uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_CocV;MHs8T$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!Db2?zKO}1c_0BzPy|8z>ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjwRm0|TRpr;B4q#jQ8947m;&h_p!;hOU}@_o#LS+roPX&fW~}*j`vxTqyXJDb6AM zsD;H*@tUbYUY)v`Nk8Rl+@yr>r^h90b1e(@mWiJ6Aht@2W4(x4%h8#JxddOq|1H&OfU&ES|^yyNYH zZEJJHcKmAPa8Y0q1lcdp2xo5XwAt~tdeZI93iF@LI3sLXX#LscNx+2jb8bKW-tn)o zuk)&U+>xdiOMk@}oIJVw`1$xd;_BVR}SaP#7~ooyEj*I{}E>e gntdYvXmkT3Lyy43Su$!$VW5)9)78&qol`;+06)yQ8vp5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>Hocb4#uknirbaH#hOUN&uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_F7sR8kk!cSm4!bk!2Xf%qCp8b4 zXNrKCgIi5%7Xt$$x2KC^NX4x;vkdtT8SuDDA34Pk(<+!3aD;OQQ)>IfPS!%UcY$q} zdUuzsh=^!XjtLWbVv_lD+Ppn3fpN0tQ-hXn_4_5zyhQz>(k7LnMQSD9Q?_*nPm6x- z@P^4YM>TZf6xDeyZa$So_jk0eJRx56x9?2S8WrD&-t8+-^n7kDez;McYyMfguC?-Y zx!=+bOtaXou{8Ec8=tUzWzpuNt8SbVoZi*aBfW8gl|ZnafIOqivq_?XLe)3J*Z+CC zUCc#+NwC9#MM79JzT%F|VVrM=AD4>*LK~ooV-lwI9uD l+3BpaRIBNFe)LD71P1>9f2PN-$TS8OIG(P4F6*2UngE84ooN67 literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/12.File.png b/resources/images/icons/White/12.File.png new file mode 100644 index 0000000000000000000000000000000000000000..711af78fb538ddd12ab6486cf4f65f2fca4ff3fe GIT binary patch literal 1288 zcmbVMZ)n_P7>^U=?3~UaXk|A;+DR2Jx#aG0N!n|dOVYbzyIZ+CwAf9XOWyWkFUgst z*K6&EtxTAQPEnzwFlx~;tF}_1bF1K3m5xDIl{v)?xz1 zE-kiKZNXCn%R5eyBZz^40em2Un^rGDvMlRzP?Qg9`0PQ$k;^{AZm2Pcz*a1+=xC;a zx{Pwp>~|s<^mHu*y_ig{6B~9lQ7~mhSuPSJ?k9BJjcZlgcGBQqH#XF^vx7xIq=9Yr zTMDd4PeTn1b9Zw?t|Ih?+iPjCC~`qGm3|!~Bq;@=tPmAMDawjbN?^l$4Vy4*M>Z5tv#UY7 zRcz>{SWd8j?3h;8Gz+y3=*XLnY3I!%Dr9K1DJd(O;R+sd3$zxm2rR7x)OO3%(bWud z+6EqkX@L}iJR6QyBlj}_Cdjfh72w5iSi-7U_5WmzfX)zZd;F(eY9iQ!?smQT;bDDz zfB|R5g2RD(dp04+Ep$TUv*qQhV;Al`yX&53yY`~F%e}tBHP7xRE@W0b1>drFzA`n6 zjxE1<@n~W$aI8KwX1_uxpWQM3O!J9t6I-!2qnAc1uTIDBdWYY1NI3G^V@=o3 zV3Yg4Zu@=Mce-`|;g7BT-_!W(bKN_ijNz#%e&z2^;(x_5zaUC+_FDYpSx>=I9&JB< lJrWylbeiWgZ!Zqr?ne$>jWl*Gyz!CyZ%RlhaXQ*P@(-f!yMq7# literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/13.Clipboard.png b/resources/images/icons/White/13.Clipboard.png new file mode 100644 index 0000000000000000000000000000000000000000..83c6af5515e1f1a0b9cef4fb6d75d4caf737666c GIT binary patch literal 1336 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o&*>5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>Hocb4#uknirj9PohOUN&uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_Cobq;?-;AT$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!Db2?zKO}1c_0BzPy|8z>ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjw{b9*} z5U_6cxlJ$EK0VR@YQ0>{)6X*V1n+i=*-W|KSh6fO)qU3oo_mq^3lfg@KJ=fu&eUe( zGq$iZenn-QugqY5Bz8|tWQ)n8Wv?oH`5TVh^5Wg;n6~MG^&9mgM+6jYnxxsUWqbJS zU_Z7+-*W1e3DPR}{C+D~eOO)dkNJC_#RA)zi&J|2n0mrOjwJRo+q|x=t$5FEx5@kQ zvkBAwFOl!Kw_p9)3y(;v(|sSdi#c*Q2{Z|`D6lAUU}IXcPVjKs-}Gx;>K{F(6vfAz zHx@|lYK(tUHBW5L)Aie}D_G-0w`A{o!1!n4cIB!@yFY0;n~g*~&(%q}T5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HocBUhEC>g=58*|hOUN&uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_Coc#;?-;AT$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!Db2?zKO}1c_0BzPy|8z>ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjw9rd`iD7o!Xfz$rO&hzUSD~?a+k}}CZ!*f zHVL%(ymQ^<5%?;Gr*EU@`z7k_n}zQ_{-bwI(@9hG>p`|a|22LptScNoRPqW2-i})M z);MujLB?+e_hk{vJ}sRsjz^aHEU!J;F}dr;7dg(Qf4Hu32){I(X!@XM@o%n20dFi5 zSWYnb_bZff-cU?A`k!kD!#$nV(=Yx$VW#Z*;C%z}-2@lq#uDTN%nAhnZlW_d$wcn(oE?TDkS-#>T<-l`SPnyJf-*-uBYRTiB zYWQ;UiEwUC*_pkK_h+5ZO}d|y`b+VeNb&g{VG=+7zkL~A8d>-A!U>ldCrW$Uwmh!h zo9a@rYx-&Z?zubo>OFgm;c@gd`hvVzCC`|gJ{ z>m7XO!WY4GjP0z6_>9a)5|2y!iaD?HX>AC4czcyx`DJ?}_8Nvw4Nd0_mbr*;e(-)P d)8=?aHiop9Me7;uBDq23ou{jx%Q~loCIHb{=F$KF literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/15.Pencil.png b/resources/images/icons/White/15.Pencil.png new file mode 100644 index 0000000000000000000000000000000000000000..b260f5bd2266bf0c5f326ae6f0251c6a7dba0e53 GIT binary patch literal 1686 zcmbVNX;2eq7*0hZa#&zgY+7+$z&pooAQyy~WH%&Y5Rwd1s=|^iumj1)&0+#psREXO zZN&q`qpf&VWn|DQbQneuwP>MQ$4W*krIyx?pw1|GmCL*|l$qr5U^?-lbwU{r<9 zlY_6EO4BC;YLdc%7@m-87C;an67itu7?B8C1i%6a<_nlx#D$_|F(Mf(2F5Osu|`?4 zWd=kuW{Ww=!CacQ%lLe!)5&uRc_fv?hon-emji~mj0V?HXrnO~*XD>AXFza=nIh~o zLD~Q>BbG%L&~lLR^i>E}yI%jA*yb2Z6q7Q(3$ybfo`7$)dgB_^cF+d=UpL;U?JyPE zalQd}kOh>PsYiCiIGD-Z+YNaY8E<6ED1s>pmXDC;0xNE#b%-2fzVIxBMJA3GswF6_ z6rr#{B!M6a3@fD)R3e0h(TG5)8RvKtRtZBYu|^_9)DQ|ms8A(UtJDapk|HWtEfp)r zu{xWB#%yMM+%Cb`9mB$J#mdwaj?pA#BFX&m4oJ==Y0{BP+5xpu1kBT8X2Rwb%=Z@P zRlEpJ5o>UZh9a%NXoh9P8$1w;)Q~z_DHW^6A{R)6l4z+^1PhgjSd4;WSj+#(8lQ27 z?`@C&w9B}N=|S)Ib@MZa*W-iRn3wVci#6~8rZ4B8x;#)N%KoK12&WW?;*H7&aKI4CW zk8QornX(=%$N9i^tI%QT!#p>g&4uu+u-;lAu;VJQogx-jXsUkio8p>ux^3B&3F5Zq zlRIkDmv{p1Z&d7S8DTfIg}1a$cXQHma*97e?SX+CLImhV?uA7+;q=H=CrZfnG}Rz+ zC3{e>2MuROPR)hCm7ez$-(JUi%t`Z|yLghREmW~=!R2=Og^b}=&mY>I&%YjCkw_F* zH|E73uI8rPxiieOXl6XQSW})@ckN)8zVdb`iQF2?;!Uy&-N3Vd&w!rW6LM^urm+c%8UP%cXv`_hPyck zNRQ=LJP(WFySv_ROWM*oRU8~zSn1l4p~6CDnz6 z>LSA-n6SAlCfVT8r zA`$n4r+eqh`ee7H%C}K?aBs>)aNV=^!^jHJi@1S?uF?kC=Vy;*PWkxGqYc{^{r!@E z_UI*UPkw7c{gJDEyS`(GR}SIx4%O6DmG4du^BgINpT*9o?_X`&JjlM>(OtOe{1eED z2L33$-jNx!v|?fSoZ~^MZScV9Lu+SkXr4I~zS-@Z8Sbmd{Jxv>^w_ZBvkyWX?x_Bh p9{;fCO?#=>d7jpWgZ23V0@i*>Y}t#9lKb92g$_+Zj;k^^{sSaQbu$0} literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/16.Pen.png b/resources/images/icons/White/16.Pen.png new file mode 100644 index 0000000000000000000000000000000000000000..0447477a5c2ab8fe9911aa1d2010071ff7d5b632 GIT binary patch literal 1546 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 b7AUe+t=uD@Y47K7HSHWmH}=v49! literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/18.Pictures-Day.png b/resources/images/icons/White/18.Pictures-Day.png new file mode 100644 index 0000000000000000000000000000000000000000..fabf40280e601245ddb29c0eb12688d7055dbcb6 GIT binary patch literal 1468 zcmbVMeM}o=81J&VO(HrNalyejkIymN>s{MxuhNqCuGlICEFhfl+(IG>^O0Vy)s#u9gqQ*heT^$hD#(2|bA@9~LfnJgvM@1vPgAV5W6pWADI7rwd( zLvEJ=&ePbHb{`2!+}0WnWY=WmFg2wN;eu0*P>NqK5_o_>Lw--0m)H9Z@G`Gn+)H8v zhL%-?QUko=l+&ICkt_!wjY1`7lqd?}xB^vca2$OB!jve6D8(C>qiVed*JD~}^@2rf zoU2&xpwd=ti6;YGA_zV`f>c#iDXLTomfMG*1VKm~7$z4rr*NDCRYNEuHA%5D2pb918@kntkYx9Bw{OiWL+I&v6 z4{aO64nQi**KJBrx~|b66}@=v=T1` zICmv*rE#nWTF$WEy^aT3oJ2{riO`x?BUkEFIyFJyn94+HwHA04>-s-gLqul~sXhMF zE~oXQNCx{-5UG@5vZYZadsMl9fB^7=E+= z^|-jgxha2$f76%n*r-~l*YwHKtr61$dzTJ>k?MjmHOeo#?8#oW!Rb&uxG7{Q0=C$wMc5yTVS^ z9=Y-MeM3_I{SMS+aT&ficdhPY>l;|X%#V5guj3N}X!#N5U8DT7?4p?;=G&;>zaJm& zc~RaF^ZB&CRc zTl^!<6SHVXbw+OT!^*H0+lh-i%^f>h@WzBwlbW!Omeb8or7mn%{tS=YO8#W1VJ*fnP2e16?be&#EI!O_;2mrUR~(*ffbGNw*%=!d zlh(2QPEz!#Yn@SDhjn#(hm*(EcYP19hWtIz)((bm@3(d$ XHdc@rQFU%1ApK8mmJF)PTzK#w#?uw3 literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/19.Pictures-Night.png b/resources/images/icons/White/19.Pictures-Night.png new file mode 100644 index 0000000000000000000000000000000000000000..32850a8373f6988d25c8845a9ce2e60686bc1d65 GIT binary patch literal 1484 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 literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/21.Music.png b/resources/images/icons/White/21.Music.png new file mode 100644 index 0000000000000000000000000000000000000000..7ddeeadfbab717247d244b2be1b62a74e3d2e9d5 GIT binary patch literal 1488 zcmbVMeM}o=7%%cMB!j>lh5>WuAs_>Ky=!}IFBCZLT34a9mX3isA-uHd( z`Td^n>o6Lgi;YQ+5s5^xx;>;xSdqXJ9VNV4RPrUE)*ufrvvMWVa{uZyzSX&$JiYZ<2+od5hH z2ryPPxKFN^=v@SDWA-$2bZN7}Y-zSzR93JcAIS4!0)d0(DZuNfb9ykZ8eHSWgnd8^ zfxwyyZ&!osPL=D80KsxJAQww>EfN?8P*e=dotC~*QN30MQe8flS=C?ZHrk%}xr2$cd4 zVRcRqPdP1g$Sxz;4Pqsa#9{`blajkw>I(iW4Re@XG(Xr+C2 z|G;~TExWdyUlcFC@>k`pV*NFDr@{EuZ}G$ZU2cD*0Z+Klx-}_5F1a&3akyoNWJ}GZ z1HfEt$${lv@_~fd@~UmK2UE`|hnu68t0EU#mC93}m3)zZP-?m6x9{ysa{wB2y#YjTz0pk#Jkv zmT8(SxY*}UKrd^5j837_>e}9Ucrf*fDvW)1r*6iN-Lip^4J*ru70*0z9C&=GbN*OY zO?!IN`;(wN(9mvxoB^+Dg>Y}`%z!}?;YPi`+gjdnD5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HoZ>9rbb4V7S1lthOUN&uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_By&58d*3xo8Z-Jk!2Xf%qCp8b4 zXNrKCL+hs(FwZgOdAc};RNQ(qYoiylqll~VBqa{9*$q?6CLPP)5YoNl7i-xyF0Ra+ z?Hj&1vp5Q2W(p$bjxd5c0J&{ z)4p%(tOu+v54dfb-7hdQ?=-Vs7Ok!D?v1}qgYWc>3$LDFzcJyE+%6s-Uyo@$3l*mY zdc;qQ=&p+lJF>!N%F%O4%LTX=_Fr&+p{!HJwNT&}M{SFpll;O7Q$>WDqBf*(2c9GvgD?Ek2*9c1!x>6YAr-2%lypC-Op{i{UPt^0$ZuHrt< zivn9)dX}!W?m78unIdQ9mdKI;Vst E0192xZvX%Q literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/23.Videos.png b/resources/images/icons/White/23.Videos.png new file mode 100644 index 0000000000000000000000000000000000000000..e5085727b3c543a0fc7657ccd1657d182e499dea GIT binary patch literal 1380 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 uhPl>VjRNMpDSy{yNq6ZxIP%`L*1&MgIU7ETzx@ literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/27.Phone.png b/resources/images/icons/White/27.Phone.png new file mode 100644 index 0000000000000000000000000000000000000000..85904124ecc8643cfaa25fd4296bf600b0ab1a56 GIT binary patch literal 1334 zcmbVMZ%o`|7%u}6A;iVt1j)`?X2z7eUfa9gwc&(bd%(#K8Jv+Z7wGj~xCX90dOhwS z`yh)^w;3i*bW7AobpDxSI@Fnnk!(?;ZjMPZ)MdD+xP^$}jBLqR0N=tL`ho0&P22Z< zpFY3e^S}G*>#Fl}@6AOJB;Q*jG{BWKo}6s>HdQ=(0xm_mr%7*A+w{1o0fY;x0f2hL zVmoL6Vz8&{8&HlQnIYNVq&NAtvyvLNh=z_O5spAKf|OSzBBIm*bTk0kWyOWfjgDcc z9CTri+kIAFga;wHrdI=vy>))6w?krrSjEF=d4h!mVW5j>BHXD&*@O#Q;br085aSrS zqM~=WuvMp;eDx@=Y5=ucD6?cG2$ZHRgw0OVL>Wq22@G_R)=sme15I5Rw5A2y z*ao30Wec8MSV-3+ERM(HaZ8-Cs9HNtFbrdGkfa%En4>+4E+))Mv?R?SfT*O&5nWal z)L;|?YD{-w(9_ir!V#ZujaZ4M5(QI+C&UO&Sgd$BY{a#q9n~AazizCn9rgD_0Nwzi zYD|-0J=#jrV3@mG8!{B3H|(RD42vRm3aS(f14Z`=E)0IL1mz&>uu;6zLvpl-w9-z3 zaFQg)I6Y2^q-=tft4edMhjnut!w^=tz!M&V@KA1sck_bB%?NIiXB=D_>s6w|Snifsme+u&tD0X`JJTIdA5wKS8d4)D-$v$c(4>U_ppQb>sG9ri`vFzdUzw>-nw8{_Ez&{7Vm- zHXgfvM-q9xy7bc2iKZ?7eL2PN2hI-LM!=VU49DY>+6%?fNWt{|wZfkKB1CGOrZx-}yt;cQKUG3!u_HzO4~%|#b2E5G-TTnY5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HoeXUPUhw&maZ<&hOUN&uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_Coc#;MHs8T$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!Db2?zKO}1c_0BzPy|8z>ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjw2=s>U)O+NyDV;^tf%D42Yn$#K$aQ6GSirK4fyuqD z{IgElQW=H$iZ|3|PMnu?vh(=)&uMe!Uy5Qc-O#^4Ev&^udzSz=Q(MIsn*H{8u`_lbAP_eUu`@^lFaE>01-v+uv^m2b~DH?EOn65M+B_>~=t)ZLa_E{gGb z?Q*=s@}Kzz_H74dSh}_MO@A}PF-mgAi`jpf=FTaOZ`A*^HdBxP{MpkJ?KW`z`O%up zk+b8Hk@&27hh+zDGBz6jluMbY5w!J5-05wxtP%`GPP!Z2eq~Jq6>6TYelF{r5}E)7 Cs@{J9 literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/29.Mac.png b/resources/images/icons/White/29.Mac.png new file mode 100644 index 0000000000000000000000000000000000000000..1916a6efde161ce16386ca01b55eba5ef4f8d1f0 GIT binary patch literal 1390 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o&*>5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HoeXUPUhw&jz%udhOUN&uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_Coa<;?-;AT$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!Db2?zKO}1c_0BzPy|8z>ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjw9e6W?8#-~UU#_iOx8f1%Z( z7q+qK!K&E`FCwz7OFsSStC?ziE#Zyi`&ZQ;lo#%qzUTeEFO%XHZ@G3+)h_u&b}7Knj64zq$NFowcOLaO!E=PlpYU%&5g&Is{cLd*qAe~ z(|_LXK$iXm{LdyiwOMOT@P6&Q-{^0bfS{6-O9zLbqLNEX2b9y9Z1q%qiN&LC<%PO- zPo8;nKPk)HTM+%H_4AIh%89rCX(+1Sc^BEKmn5BIX>(8L#`Aw4e|to7mxvZfwr>5l zn=@~6-wggUi#{m6sMJ|-TyC|q;Ky+JK8q#m9$WaHv`qH9`*dgQ`6%maK3_v)RElJM zkG*qCWh}9{^;)x1`pnA>$E@9@=4hOm?`p1D8UA3_PTu=6hKp?&)-U+h`$wvneU0pH zc5$U?2buM!r?u@;%l3JDDxN!%`FqX^-ZbMY=Qg-~mY7;t6=+}4y7=i2KU=MHKV1a= qB-cDkH&)fZ3iRS9`<6YN1`OXOrJrRB-xvuh0X<#)T-G@yGywp867ReK literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/30.User.png b/resources/images/icons/White/30.User.png new file mode 100644 index 0000000000000000000000000000000000000000..9e4a17fa34814224b26a1c627dacfcac19a46a3b GIT binary patch literal 2179 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 E01kz3cmMzZ literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/32.ID-Vertical.png b/resources/images/icons/White/32.ID-Vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..7a9dcead6edf6842667a78dc05b9662eace73fb6 GIT binary patch literal 1642 zcmbVMdr;GM9Iw^^a|K^G6mBlI4sk-$q%>^`72Bj>cT}+LRlq6hBc&DE)HF!T7!x*c zjOlrfA%YWSWscLqKse45Q0LAKAIM;EPUi#X>zKkesn1PVis1H#=O4=@`Tc(1d_SM> zJ0GX6ObVVJKApv41*=xz8fJz4Pf!5!UXW1I#4Ph^Wg4v|Ep(oNB3N=WX(RxZ-H=6S z2!q+P;Up2yVzI3@T^gOHPL`TTJKx~f;k)fl2F+r{C%BykQ#L^ZMk34Rka2%+JIV!Y zW*K+2NG(u1F~VwFkxvoY{FORWezplUa}$;U@op(YU?*q;;I`*DTvE4;JI*U*_I@$Q z1;$nAY#H~dQ)%i{03#^^5b=dECIJKi2*QVAMF;{#1F!&sK>>3kF;J{jgh*jAFmZ7i zYn0g{)!>N}wwRNQYo%$Y6a@3~^7wf|K1pSP5Q?IH4j7JMG-6yH2W@c2I9$9*2Apu2 zD4UbEkq*GmXfTqww2aGm`ZNT)Q>}hR>~Kvaib)yhHaJ0uF97X!e_Z3*E?PtU>&A1n zT{@4G05yb*%%x0BJuJLQFq69%8}chM-bhm@8&ecR4o;eK?Sz9?;W94sg>SZ*rQ%p2 zCQ-t2L?3Dckry9E zFWZ$I+2)F?s3bz}s|(L}#dV*#e7c~$Ic}PwNkrG_p*#M7)!;w5*N|IDs1Z#$wAv!N$`=0!I3BHoXhos3CV(dG@f+*IF{XmHRBGEkNr?=lrOmRkovFUWgL@ zjm~Q+Ps$0TPL>N+^ymXG-V-ex{WUkuJ73?j?&kLQ*5ziZ5<}}NiV8mQ%ve>w-`c@3 z?>cubT&-)p=CZuc@0i(dI(0kxm7&UR&!X$R+}9eT9)%6g=?g8GQ5*EC(YHM&Rr?3J zFcFzH8uhrYF#XMu;S>9VE^q1{_{xVpFzvXBhz@+M^$`cJ1ZJPocYN2;w^SuoW+wGC zG;Ph^!y^aBf-T=_Q+r#qUqtpTXdG_49a75)8T=-q(9njt!?Qle6&2w4C&PR`a`^|)%vSK&FjQ2UuW35idrlp3<Rqs^JO1tTl&mH4(Xou`^9fS|SYcBOhvyzh>hb^mRmzokgW{dye*n{M BYvKR^ literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/33.Thumbs-Up.png b/resources/images/icons/White/33.Thumbs-Up.png new file mode 100644 index 0000000000000000000000000000000000000000..8e7a559e6d482e28778a9a763f6c5079c964e85c GIT binary patch literal 1895 zcmbVNeOME99A5^AI3y5_S?V#(7h=2Jjoo&WrQ6+%i31#<6G0i<$p&mUx5ELxfrg<{ zVgx<{;zBev--u8YUr`V$cr+m*vXU%^QGiY*lkBEo{o&Ie-E()p-|u_h&*%I8+?J?_ zx4pe4c`+CaZ$%icqF31UczV$9DRc9x=!Hee)l@XOlCo(m1VgGLlL$az)FcxsLZi!E z)l7sk7%%G$F=|S!TqxF(My|%C!_6?7X*7coIyb|t(WVj#qX3Mw5P*Qo=V*Bl1Rw|(3K1X(6b!&T2nKodjc}k4u>cXnLSXn})7C7y zm0}e>f7lj%lCbp@Wfp^=&1U1;_*~MG3_>W1x;S8%Lu+uXnI=k;!7*8#cpyYD2n(SjkPS!96Y)hMD2l**DJ~Ss*~3`f z|H&FiI|I7f<6rGEBBFcHwSC_F^x^sV5GHzNEc9>`H!>CU%oQncX-vkqy(KHc{1^E* zCX8(xHK8VK{2PiwUR2XxQ8L`C9dr6m^wlqN%N;Csll~Y!CMO3h@|C!=+>51Bf8Pnx zMFrBT6n1WBP~E+Yg)k44q|cjw&u?aMOscB@ZCtI)|KqZ&11HYvCI?J+Vh$#r{1eB*lQn`pN)-!+?{(K2URl5Zr;`O zcLtgSL(ArR`MP(<9`}sDSzX_p;#l#hN*~(r)!wPPlZoo{Y|PbVFP{>>j5!b)(A9nN&dJ@QA9z%rx{Sc9-E@B_!Z?3!Q$+Rn)fKI(e~{U( z7WD6buRWr+SMMEA-K|Y3`_v2V?7*p?0+PZ2p$) z58Q0KR^OHSJpAG3>9;7R(V==JDSq!2who&3#JN;w|Q6H zz$485O9cVfKJ?DXYcsTprgb_4TYw(te%!OP;>mAqYR>+t9ZbKf``;}u9jpeef9zQH z?txOw`+73#m1|A;H8;wudS&OjTJt~O+;h*{b7{|q^tmFMkCt5A?AXR64s&B0KOM`m zgI_a|#HhU5TidOt7SEg>aA|ECb;w%uQR%w4A{w#$>am?)*TB&=cWvOh+>i3x4}PwG z&|?phUlYx~Ke^ksqitX2(pg*IzrQVJp!H79E&koDkxtpc>@+Qsdb>|LBR6<^U!f|Y zQKh`v@ReFpu-u%LK7UlNM>3Urx;(*@{%{U6tGH{Kye1*G zB3_5`dM!7&FZo>L?o0uu%=o=4JpSCrYiIMXbX@Q5+3;%2nzD`Zip~RfcKz}wF7Wb_ zmzA?OoCjHv#~A~`b?%5ruzt&5i5K{#!aeAaZz3ZFDBB!lsPAz7`V{gA{HQE(x*0Dk_>u8V07lC{25;l`kQbno(u~zC_VY!TQ6eKf34ce!t)MzMs$c{kh82 zltiBi!4o(fj*l)0OJ`Tu`-~sUzQdHR{p=FNXfl{NWG+*TQv^q4CXEE3v*CF}I)R%@ z3O*y^Ih;`zt09BQ(7zxzkv2Z=)!{pB4i?Sf#4DW++_Z>b03(rSwJX4zAGU#j)vN$t ziq#AC4wSH1lS(OKPHBq4RJzE7m_cO%5bu<;1U7=f0jDkBPRpGN@By!!-Fw9X5O|=% zEK-0EoyyRs0w_rlKrCMrV-i9TAd&DPajZlF%>-Z}1Pg@hEs24|@>q!+mIA{U$XcV! zx$<;OJ8X+RDL@OuIOGCBad9!fSi~o(JOP9th?fI~V_1zCy2Q@l&KNr#F~Wcmw287h z7%OQ9yo|V!EMycQ>*>P~Y!1Et5wV>fP86FmffIKKAihvwvw7ospiMLB#6NC4R+~1I zI0!*HL6e1)iLFO�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 EAKHdINdN!< literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/39.Heart.png b/resources/images/icons/White/39.Heart.png new file mode 100644 index 0000000000000000000000000000000000000000..512a9d5d670193c2fc7a13676631faa163f5e02f GIT binary patch literal 1884 zcmbVNX;2eq7!IgWIaH8ZLBMUO6p>`JIX1~k#3Y+Q)F2Q*q@aXkLqd)XyNiSfl&a%> zVR1w}ib{b_5%F#-iYeBjW36DRRcpsJ zjQ95m@nJ9+{^|rYgO_ztIU^+u_ z!5J);!5C&Tr)E$YnmLFbw{dhH9gfrHpwSFQY@E}f(_1hK$i?!^b}8$@u~rsfHb`0X zgc`2Kp}c(G_}gu#fU zpsGPz^hwGxQIrD#!J?ufP7$Aj6L}yckw`ooJRY0YV3WmmO6O$T$%r8a6eIP7*+H3c zJK$l|<>G~ultp{`Dg>KDqj^niCkGQnrwnxJ93aHuf;O8ct^sY5O2PhdDb%;)h1C|9N$;&>Al74jie!sVh0NC`nozFeY^D^R6eg35UciAXkt zRoh8QXV+sxcFnZi0jyZ1`cEvPATS+;6R9|E9qNE26Heiz33mVrEeu3ybb7PhBbe$b z(5rY+j4&_43@QS*0RtIE%x~~O1S=qgKqe8%2P5Z-`C@@Y0`vGXR3uWe2C;_!lQocb z2K2PYzuIL;ME9U)`?~q*!|U$QN(BKic9ai{{6!*foDk^P2i4oJCW|?b4f! zAHKuPy!<6ny0Bzqcw6uJ-ff~^qWZ75t>i!G?=S5+E_$$GxnEoR^ifmd9+X#Zuh<^& z@!4H|JJ*#@6py`kvH&;{bU!Dch54QP!0hAE7siCRr#k$Woh*77(Bh@NesG%b*DeC^ zu5<$l8?SlUmpD*=@f1ZP&52VFhO|o{M$?k;F$9(UHMavP(nTQ4bRPAhFZ z7SEo)Z?0@#eCK`2QX69ZmEACW^S4#kaGm_ zvs6iKo|I@6zMB7$t7k>`D+0QC_@$7<_pdSg+FzFc8B^WRb3}eS zFil!gwee?E>>K%2%6C-{iPc0+^P_rq+@<*_3lm+P$%-Yh_L) zZVaw`F>*ZCxgEM!xBh)yf%A{`Uy(C5Y~kvw^aqpb1Ac2D*Lj^T5j@%m{Sdl-!RB?N z&OaipQQ<#HI%eAfZe>LlrY*TvndraIBIw|RS&NLB3x#*efA8j4xCQF`yIybkgYL-* z_4hR4RJHR?@>x(6CRZq=b^)1g_Br?q?cJco0ugSWhFC#Ns{@@Optb$`8V zOhlxjQ};M~MXkK#bc_NaEz7TwM!`3fmWxCctjt%dAg2f;1`@D?J_c_`8eb>1r!MVj(^vg?L)>mJ=9`M15 qh#iJ}ux!$q7ryc5+snWYMoeVHGoBuLepMUp`QNFPiD;8NXUX5Ah13fG literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/40.Cloud.png b/resources/images/icons/White/40.Cloud.png new file mode 100644 index 0000000000000000000000000000000000000000..bcfecf0a0a91ec83e69a60e34117b6d986e12ce5 GIT binary patch literal 1662 zcmbVNdsNeA6tCa|iX!tU4hLHdPEet3lD?r}+tg8Jv9@e>OkHD}LWDLojkHv7IP|O@ zWOhtNd~NDbhjoI&9*7F+*h3g|Iwl?zc6@MDaLjEg>W)j1>i+Qf$8wU~@4LCb-+g@d zo~+eoyf%(Kh0S8I#;Ma#9V21?6Ed24znto+WkeLMGSGU`LOU@EXUWav5*$!lv20w2 zW9EWo-{Z+FR&WlHX`l_7xl$8p~Fi&@5JRs>_aTn0SoH8-zVTlcZnc6+yk>8MsMmmoom_xzxP|~#AirZ*4Dg&7>95Z2-iuj09 ztb*l270eTgAxI3va*0?aMqq@G^5k;@9M8g{0t7-OJU*&~R1l;>6cVLEiK-M5Q~@g` zB6$F-wmE3bX2Ju03C8a*7I`jKs-$p?CaFx4%nNjYHix81M-FKRlzJf$ufa@&&99i@ zKcL6?qBuq51fk>!?lzh2Fq!`YeCq~44i9`q^a#SQzfx}qy|EU_6 z35M%$kN>nwK*jW+fBB^Onaz{&!EMaUP|R@D9m@KW#R~GNQF*58LSJS3>l@_JEekGo zpS3p@I`LlBKsf#-rm$^F;!`QFukhtMa(+Iu2nE% zTH4y&TL&ZQ5}}=au2@zxDrMDVV~~$n07j~U>y6QU_@l*FDxojV2#!Tg?e9q{X)RXU zW6qVN>&Cd_^DElZw{rBWyMi8!%?sxj6s|z>{v6ZwK~`E^@P}39x6iCB{s<^qSeou> zy)pjBr88%`XCA%2#9bDZbwBHB@5j-~ZB4NQ z5q%S55BE;UQkX28LKji?prjtoK6XQ{+H&h!czyNQPxKz`h;T=;+E>(52`}DaYp(E? z8V@uj9R01SHbNYhLUnO723z{y=++0l^XbMM&WWu9CtesRuWg)J*Sc*=_^jz#A6hW7 zxtEz%#Mu~fU5joL%`Q$4JK8C-w`$U&6ZC1vF_22e3xjXm9Sr@0Eglis?Af{Z!ixckS+esl2Ty?v&D4r9Aog+9UNFDE+gz^od<|JF~<;9#=9(L_I|E@34E#8Ha2qUX);@#G>73Z7$ Oe+0EE1N~fKeD7bA0e30@ literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/41.Trophy.png b/resources/images/icons/White/41.Trophy.png new file mode 100644 index 0000000000000000000000000000000000000000..2f3fb3a9c7311fb6d7218a710f2d223a212bd220 GIT binary patch literal 1564 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o&*>5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HoY#U#)dAI1{N;PhOUN&uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_CocVylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^xd zz{1$V#M08t$k@@v+}u?OsyBt4P}2uGMjw}ai>gbA$Q}-@ZJ`U7mdrhBFW_W)Hf8d$9nA9Hm)^YjcP1@;(iIUW ziNXzL%4*-{uCeLgu1-jzH*~=mQE`kqz&)j=fS(n>}mcovk*Tboc3= zfAQK)ZlC#{Z>EyB*Y}*^{^(eu9p{$%W6H#euUr1jsC21_+@JU(H~C$NTNt^kq<;IEkeCI?Bm$%j4mC+Y2wXjlt)|tZLG)dyM%<G|z5t{6x^uR{x^!)5Q!oQCc2dH+*tmuB>TD#@VNExcC_!|J??H3Q?rj)e0&jn#GtU- z*X7r4er+ZGBZ7GsVp%WVP`2t!?&Em3c-_$s-ThB$ew;k$E@>B8_eX6*Xv$rwjpttM zZ`)V;!zfDCWzxo}hRct*2-iL_Rp0hW`Ej}2Dz9$UN4&zT1==;Vk9Dv}9Ny_1lPubl zDOwy5sm?3N9-);Nc6h7vs$=F%8h?UZu9>~m+Mv^&J*6+3?MLLnpIPcF!aaU%ZW3G6 znxPog0i;$4T{>evWqw~|eExqYmzt@1%l>h@^R%>l)bDVLQA&DM?ZVyJQOjw-kjH%L UR^J*OW>9(U>FVdQ&MBb@0Fvf7M*si- literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/42.Badge.png b/resources/images/icons/White/42.Badge.png new file mode 100644 index 0000000000000000000000000000000000000000..2140235171368ab9069b15eeb082c3ed3bbcfb18 GIT binary patch literal 1506 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%o&*>5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HoY#6E*1tB#-=XLhOUN&uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_CocV;MHs8T$Gwvl3x^(pPvIu0Rb8LCHch} z`2`Bj!Db2?zKO}1c_0BzPy|8z>ylcOS(cjOR+OKs01jcROe`)iH*+?0HgU8xcY^vH z=oJeSOG`5&V@DTrb5|v(-V|~|O&{nOeNgg1N-i)VU>XE5;fWu}foGr8JYb$F0%nfc zpCxM<7?=b+T^vIyZoP@L_G2~_xa&Ga)8m^+WTOJBqLA*(9S$7|7YZ2l4zT`M;^}x) zRiNv~5@n7hOCECs9AxcCI(8{KaqS!pi+QPraxXRG-d7zvzhBbdNzvs&lMYK?hq}?? zBQ4nqXu8N~QqPTRHcMY?@mYtfrc zJIsXt{x@^cOuMmNNqu7SpKlVJUxK!+ss3j4XsKXgtELw!*Z{|5K(s>X~+J)21y+dhIukO}TF@w6nR_Y`L?J;63A_4#9`X&%7sof5WFL zKWkdL>#JKQKdpN0Bk}&s(Ni;5uRHtXaGu;G{+(XzKUwZh*2V`y z-TL}RKYB%koEJ3h(s=*>m70(sn+E@fHLEvEEh-T3EVrnfuQvI2g!WDTQq|HWdOM|4 z??0*P_fZmDu&yt^s5;9wp=7)I1P}Ss;Vp)V#`!LL(!aZi{1i%H@Me5p{>J9tGf=7P M>FVdQ&MBb@00<2rhyVZp literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/43.Bell.png b/resources/images/icons/White/43.Bell.png new file mode 100644 index 0000000000000000000000000000000000000000..cad88a29b5f48cdb079f97e512c1ffcf4f44ce95 GIT binary patch literal 1808 zcmbVNX;2eq7>?3GIV@1|fGS-A6=@}#-Gq>2NHEzAkVufbv1m(37Dyr4G+7`)k;8+- z3vUHS7`14*k;|hDlmP_qQV}aoiQrKXWmG&ytagK7`@``^cXs#tzIWf}dGFc0kl=th z*3Q-x3T2Ks5Dg<&*!;}4B;PK6xwYitM2KWWI37o&%5@k;pu}S_K&+O>V_}$FY5cJp z^QBNM5>yc~LM9F3DsVMTZq}h0)LIfvq4@e4v~oovMgXx`yh_8Pj-73x0xBhs`i-}g zF4ZDff+{dghlQsFM<~(~6&xkij}Q17xFmrZBjkWVoutuo4Ls^3FPGe##UK@!R3Q?1 z)OSwFq#*!;>oCBZ#_&?mAqZfxXb{tz#e$XrFdc$HI(f6aASTzF#f5!iexpWA;c(;N`9d!RZ6Z8lYy{B zuz)3k=`1z`v0+%iVT;%dn88Hp0{>}_4`ERO%BHg!929{>5F}yYmd=n1(-flb?0k#?uB?2lr(hz^qzxGn<6lcqZ$BmpOIeFClpkZ=~TR4P}fG-iRP zxj^sYMKPT!1ylO#a5XTQVXo=}9{8{j2w@61KEkQU$xzr#4u=IZ1gMXXh&qK;{-3OY zq%)woJ^s@!(;~75&D;0QPafWn52hh!Mn?|E`i{PH3j>!oj|1%+V!_DJ ztND#1-1E%EM?v?}JqC@384D!a7y**VKo^Yv z*DM<6LSkJ0MF(Vj?c05f(pOs+9vUqcxZUU;vlzd4QgYa>bAP9?@L{FpMC+#*-*#yW zNa_34O*{7&&n8ZfbyfDjcW*?Gnk@(K!U2uhYfG%w-M`Q5%Cw8w`l5Hk{F*sLc5{r? z%dRUsRt)c4LT~d}H;cL8Y6|DnrN*Q6k>j#9>(dvrjxDdxeIDBQETP=JI?BRuWiOtd zoAM(;jK(*xo||bQf2>yQBgp@P(46DVpKTQKHT}kiRfTqY=wvS z_Kv28Yo!H+t?tRpU_-ecz2Ea-KX^W6ps>JOvbu`Vx&P$((t?JH;zUQ-u|_S*Ep{@N zg?8=ER1an3Hrz^E(VSJgaXS^dWJAB)_n=(0!`+iw8M+aP_Poi*xN&20*(-}ARsrN# zGrM$UBLuUUj#?pqc;G?eebl`L&Ljyw*+ zU4{JG-`>FXxAmC{UHk;E|BF~=lC8R=U8i|kcVaBO=dF|Wllr}_Hbpm5{hhAl3H2>J zllu;vYxS4xU!c{-Bon+(>vXrO|hW3OAKfCR5VG=|0uC2 K7_Ab5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8KW+g=7RhMR$W{Yl!|Z$R@KEJl?AE#L8-<0 zrA5iW_()TRX$FQJev3c~fv&OgFUkZ)N@9*nesXDUYF>$_i>(q+MlU5Z#md~o*xAC> z$kEKz$iU3P(9puj$kEcm)xy}w*u=%a(G6w>HoY#cW@ZLP<|Z!AhOUN&uEtK5&Q8uQ zu1=ONPDaj_=8iDEo_WP3iFwJXFncqB_PRK_SQuCsJLA=BlLo97ifb_V?yT$w=K+gU9^Q` zf_R?3P(w`7?;eZmT2;p#C!biqZL%!;+9C(>%U)kjUnsWA&tjaLZ&{}JHhkIt>$ePk b3nehD$bP0l+XkKw&dOX literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/45.Settings.png b/resources/images/icons/White/45.Settings.png new file mode 100644 index 0000000000000000000000000000000000000000..7a2b809901afd541f49e95250fafd46e6d466002 GIT binary patch literal 1609 zcmbVMc~BEq7+>+I(pqI0t;f_ZD{5>_HoFO%!vvaSLx~bf186`DZZ?bA3E7RCg@jDi z8CnMv$En8*;4x~jPHlmT^{BPhDiK9m4m(oBj#ZqFaXheATc<_aT_Co9IR4R{-S^)2 z-uL@`=iBw!S?^4YpAioLz(h+1ZWCry{Kk(H##w1q&B8RDH{1CfwwMnP90eF$tdjyQ zUScI>qX<{|sy0do0HfV>uAR4AGqoh^l@X$jEa>$KXaLZq1$_kRp?J_qt)v+}G;rb+ z1kx@&v^2#kxB5(!o6ZPvR8A->mkfDGjSEUk1$9BKK;Wf#0t|Xf7{4~ChlY5y!dl#h zA#g~A_voQvr|i~j(8O{Sm?Be1NjZXm7$!rMDHw(<08u%D!gAroq=-_Rf@x6|IPyS( zHO^J6wc+U_wggEJxq05Fh2cOTAPXpDEVmLyG#ZV_fud4DL+USQcp@le{Ig>WIOQif z+Q-u@1B#48|;+ND(~6(+SA zHDG2`j;RqujiLsP+N@Tf3MDQ#q{ld(hsDhpCP!6j+=Q4B#H=uCOhyxKHfnGqYSO3- zF|390^8`auF}t*2cLb|?Ay#YRD1v9XT$U|~bwIY8`C@^F z|nmN{t3X6$V_TGD9O+*Z;{HEI0#; z?eU*>iERlzC@!BhzaTujJ`^L|8BVwy*KTfe06<*8f*W#!eRpcVU)1vURTF1mNkF?06^W2X!(!EYyZoJl*lO?kOQ z>pigWKG{~hwa&72*R3??mEX_Hd!y$+>OHkM0%7YD`|BPjmCW59(Z5e!yYh2H)!#DX zSJxk%9}XNY+Ub~Aj~l)scB#QFc;WR?QRv=Dps2KM?I>hyR>aa@c|M_j~qDFII|)>H!iCx|Y7-067hukuMfjLU71f7ocO*6Guio%9T+f{QQqkwk zq>j54(!%VPg|x+@>u=c+M}Ifr1o5;iTxID!x(J%HpyNjHwR4m3Gt}z1nAV|4Xawd_W(=jBY&TBq5ZJgDsJG#7>%S?JXQ$(pdln)t@+7rMv9*Vz}g+P{@P zb|4VX?iDqPu}FzoegFr7xv8aWjWfZ zj+U>pZynir_t*w0ys7ch<>Qe`{e+7bHqLuTtqHRrv?N*1TogGApN2 zyFZz{dr!r2$5Bb$9xJ&D*wGqhX0A;>nVO<|QVz9F8&o%sFUo8CyP26ea4;2E+kg%B zZDPeKsl?1ZSX?}0@Y}tB$c%N-wULx}521_K_$xG`!)0e;1&~$d)21ifI z^6F|Zlqy6nGm((Sr0JQLbx6-)>+uP}Yh*8k;fof%tQ`n6vOE IFhG3YQIzka4<=oKuu6fJ77{3s6y$ z`alXu%HY0>pbbIl@@hKcWa7J6+0eX_tK%(cCPX7hTYJfrASs-HH|-()Y=CB|AX>RFXw6b`Y>Mx! z*n+1pmUkSJ#qnaX=q>uZhSi6Y48yn_6y<>$9(z!Cq>@Lso2v{wuw_d%9o5iLmr=?Z z15Ox&o-Tx-neq4{v2Irq1yhEXBoimS1g>drT=UwtlLG&`v81-09y9@-0=6+=$*>-| z<|-KG?%sx6Md%ItsHMW9Nd3Ga4`@JlL_UncFJ47e*r4CXg#;=>3lu?zNHRoG5hf&r ze3Z}66Oqm;$5L2cplN~%ay&;0Bq{i!3>W2iARjL zSeCPZ7Hz!3>?v$?yk67JMjHq zU%pD5&!x6ZP5jaR=Z7!fly>B1iXA;Izxp?`39c4JYAzJf&8m1*?0PRdK~AnI24){R z{@RuwhOuk0HJ3ll9N)m55+lo7(lyh+?VG^YUhJBhUN>_7{Tpw1Prf<1ZRnScKMhZn zFRhzd*?8#8vXislHY8WKtR21GIy8Pg_IhmNNORrvyYe${J+brIPxg+reRt}yrdDk% zXg<|jkX|`F_xLhW8~Nz!h2B* gHXgcg>@ZS?{C@D<^I!Y!W8FWJC?xm~qE8R~1GHwe^#A|> literal 0 HcmV?d00001 diff --git a/resources/images/icons/White/47.Explore.png b/resources/images/icons/White/47.Explore.png new file mode 100644 index 0000000000000000000000000000000000000000..83ac0580c7d2b9e1a4f705102c29b4ebb34c97c6 GIT binary patch literal 2052 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 literal 0 HcmV?d00001 diff --git a/resources/images/transparency.png b/resources/images/transparency.png new file mode 100644 index 0000000000000000000000000000000000000000..989d3c53fe2324cfa176029e9286d88e53ac0427 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDx`7I;J! zGca%qgD@k*tT_@uLG}_)Usv`AEVBFz7VB)&nSnx*C9V-A&iT2ysd*&~&PAz-C8;S2 z<(VZJ3hti10pX2&;y^`wo-U3d5|@(`Bv_k)1~SfKVB}sjR~{(C;OXk;vd$@?2>|KK BCk6lj literal 0 HcmV?d00001 diff --git a/resources/inputdevicesimulator.ui b/resources/inputdevicesimulator.ui new file mode 100644 index 0000000..eb8d006 --- /dev/null +++ b/resources/inputdevicesimulator.ui @@ -0,0 +1,163 @@ + + + InputDeviceSimulator + + + + 0 + 0 + 300 + 600 + + + + + 300 + 600 + + + + + 300 + 600 + + + + Qt::NoFocus + + + Input Device Simulator + + + + false + + + + 110 + 60 + 71 + 71 + + + + Qt::NoFocus + + + Up + + + + + false + + + + 30 + 140 + 71 + 71 + + + + Qt::NoFocus + + + Left + + + + + false + + + + 190 + 140 + 71 + 71 + + + + Qt::NoFocus + + + Right + + + + + false + + + + 110 + 220 + 71 + 71 + + + + Qt::NoFocus + + + Down + + + + + false + + + + 110 + 140 + 71 + 71 + + + + Qt::NoFocus + + + OK + + + + + + 60 + 0 + 181 + 51 + + + + under development +not functional right now + + + + + false + + + + 30 + 220 + 71 + 71 + + + + Qt::NoFocus + + + Cancel/ +Back? + + + + + + diff --git a/resources/mainwindow.ui b/resources/mainwindow.ui new file mode 100644 index 0000000..69c5a08 --- /dev/null +++ b/resources/mainwindow.ui @@ -0,0 +1,187 @@ + + + MainWindow + + + + 0 + 0 + 800 + 600 + + + + Qt::NoFocus + + + + + + + + + + + + 0 + 60 + 800 + 480 + + + + Qt::NoFocus + + + background-image: url(:/images/backgrounds/bg_blue_day.png) + + + + + + -40 + 320 + 200 + 200 + + + + border-image: url(:/icons/home_day.png) 0 0 0 0 stretch stretch; + + + + + + + 40 + 40 + 150 + 150 + + + + Qt::NoFocus + + + App 1 (dummy entry!) + + + + + + 230 + 40 + 150 + 150 + + + + Qt::NoFocus + + + App 1 (dummy entry!) + + + + + + 430 + 40 + 150 + 150 + + + + Qt::NoFocus + + + App 1 (dummy entry!) + + + + + + 620 + 40 + 150 + 150 + + + + Qt::NoFocus + + + App 1 (dummy entry!) + + + + + + 620 + 250 + 150 + 150 + + + + Qt::NoFocus + + + App 1 (dummy entry!) + + + + + + 440 + 250 + 150 + 150 + + + + Qt::NoFocus + + + App 1 (dummy entry!) + + + + + + 40 + 250 + 150 + 150 + + + + Qt::NoFocus + + + App 1 (dummy entry!) + + + + + + 240 + 250 + 150 + 150 + + + + Qt::NoFocus + + + App 1 (dummy entry!) + + + + + + + + + diff --git a/resources/popupwidget.ui b/resources/popupwidget.ui new file mode 100644 index 0000000..ac43e09 --- /dev/null +++ b/resources/popupwidget.ui @@ -0,0 +1,91 @@ + + + PopupWidget + + + Qt::WindowModal + + + + 0 + 0 + 800 + 600 + + + + Form + + + + + 200 + 200 + 400 + 200 + + + + QWidget { +border: 1px solid #D3D3D3; +border-radius: 8px; +background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(242, 242, 249, 255), stop:1 rgba(255, 255, 255, 255)); +color: #333; +padding: 0px; +} +QWidget:on { +background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #D5D5D5, stop: 1 #EEEEEE); +} + + + + + + 150 + 130 + 100 + 50 + + + + + 16777211 + 16777215 + + + + Qt::NoFocus + + + OK + + + + + + 10 + 10 + 380 + 100 + + + + background-color: rgba(109, 109, 109, 0); +background-image: url(:/images/transparency.png); +border-image: url(:/images/transparency.png); + + + + + + Qt::AlignCenter + + + true + + + + + + + diff --git a/resources/settingswidget.ui b/resources/settingswidget.ui new file mode 100644 index 0000000..2f33087 --- /dev/null +++ b/resources/settingswidget.ui @@ -0,0 +1,102 @@ + + + SettingsWidget + + + + 0 + 0 + 800 + 480 + + + + Form + + + + + 0 + 0 + 800 + 480 + + + + background-image: url(:/images/backgrounds/bg_blue_day.png); + + + + + + + 390 + 20 + 400 + 60 + + + + + 22 + + + + Qt::NoFocus + + + QComboBox { +border: 1px solid #D3D3D3; +border-radius: 8px; +background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(242, 242, 249, 255), stop:1 rgba(255, 255, 255, 255)); +color: #333; +padding: 0px; +} +QComboBox:on { +background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #D5D5D5, stop: 1 #EEEEEE); +} +QComboBox::drop-down { +border: 0px solid; +border-radius: 0px; +} +QComboBox::down-arrow:on { +} + + + + + + + 20 + 20 + 300 + 60 + + + + + 22 + + + + Language + + + + + + -40 + 320 + 200 + 200 + + + + border-image: url(:/icons/settings_day.png) 0 0 0 0 stretch stretch; + + + + + + + diff --git a/resources/statusbarwidget.ui b/resources/statusbarwidget.ui new file mode 100644 index 0000000..1a9ff41 --- /dev/null +++ b/resources/statusbarwidget.ui @@ -0,0 +1,203 @@ + + + StatusBarWidget + + + + 0 + 0 + 800 + 60 + + + + + + + + + + + + 0 + 0 + 800 + 60 + + + + background-image: url(:/images/backgrounds/bg_stripes_day.png); + + + + + 20 + 10 + 100 + 40 + + + + + 12 + 75 + true + + + + color: rgb(238, 238, 238); +background-image: url(:/images/transparency.png); + + + Qt::AlignCenter + + + + + + 130 + 10 + 100 + 40 + + + + + 12 + 75 + true + + + + color: rgb(238, 238, 238); +background-image: url(:/images/transparency.png); + + + Qt::AlignCenter + + + + + + 240 + 10 + 100 + 40 + + + + + 12 + 75 + true + + + + color: rgb(238, 238, 238); +background-image: url(:/images/transparency.png); + + + Qt::AlignCenter + + + + + + 350 + 10 + 100 + 40 + + + + + 12 + 75 + true + + + + color: rgb(238, 238, 238); +background-image: url(:/images/transparency.png); + + + Qt::AlignCenter + + + + + + 460 + 10 + 100 + 40 + + + + + 12 + 75 + true + + + + color: rgb(238, 238, 238); +background-image: url(:/images/transparency.png); + + + Qt::AlignCenter + + + + + + 570 + 10 + 100 + 40 + + + + + 12 + 75 + true + + + + color: rgb(238, 238, 238); +background-image: url(:/images/transparency.png); + + + Qt::AlignCenter + + + + + + 680 + 10 + 100 + 40 + + + + + 12 + 75 + true + + + + color: rgb(238, 238, 238); +background-image: url(:/images/transparency.png); + + + Qt::AlignCenter + + + + + + + diff --git a/resources/systemsettingssimulator.ui b/resources/systemsettingssimulator.ui new file mode 100644 index 0000000..c4f72cc --- /dev/null +++ b/resources/systemsettingssimulator.ui @@ -0,0 +1,83 @@ + + + SystemSettingsSimulator + + + + 0 + 0 + 400 + 300 + + + + System Settings + + + + + 290 + 260 + 99 + 27 + + + + Qt::NoFocus + + + Exit + + + + + + 20 + 20 + 161 + 91 + + + + Day/Night Mode + + + + + 10 + 50 + 117 + 22 + + + + Qt::NoFocus + + + Night Mode + + + + + + 10 + 30 + 117 + 22 + + + + Qt::NoFocus + + + Day Mode + + + true + + + + + + + diff --git a/resources/translations/homescreen_de_DE.qm b/resources/translations/homescreen_de_DE.qm new file mode 100644 index 0000000000000000000000000000000000000000..3a9c77f06d4f78beeeaff286d126f2f73c71cfd4 GIT binary patch literal 168 zcmcE7ks@*G{hX<16=n7(EZlq7iGhJZfPv*a3y`+t@Z0niNHb&taXB-P;A048C}1dJ zNMuN6$Y4n2077*dTI$HM57Z!DiG!|q<~1c lMi$qK%o30$@!-nhlGI$7*5J(C(wxMS{36B + + + + InputDeviceSimulator + + + Input Device Simulator + + + + + Up + + + + + Left + + + + + Right + + + + + Down + + + + + OK + + + + + MainWindow + + Exit + Beenden + + + + 00:00 + + + + + SettingsWidget + + + Form + + + + + Language + Sprache + + + + SystemSettingsSimulator + + + System Settings + + + + + Exit + Beenden + + + + Day/Night Mode + + + + + Night Mode + + + + + Day Mode + + + + diff --git a/resources/translations/homescreen_en_US.qm b/resources/translations/homescreen_en_US.qm new file mode 100644 index 0000000000000000000000000000000000000000..c77ee402141de17bf3b073c90f6f4a6220ef4a51 GIT binary patch literal 164 zcmcE7ks@*G{hX<16=n7(EZlq7iGhJZfPv*a3y`+v@Z0niNHb&taWONH5Mc0ONMy)k zNM|So(&-GT93W{nAm;E%%u6p#OiyJ8a`=K%OG+~H(u>10Q_@pQ7(rS&7+e`DfF_l| lwXnEWWR`%Giw9R0m!#&xGzDkomgXdu + + + + InputDeviceSimulator + + + Input Device Simulator + + + + + Up + + + + + Left + + + + + Right + + + + + Down + + + + + OK + + + + + MainWindow + + Exit + Exit + + + + 00:00 + + + + + SettingsWidget + + + Form + + + + + Language + Language + + + + SystemSettingsSimulator + + + System Settings + + + + + Exit + Exit + + + + Day/Night Mode + + + + + Night Mode + + + + + Day Mode + + + + diff --git a/resources/translations/homescreen_ja_JP.qm b/resources/translations/homescreen_ja_JP.qm new file mode 100644 index 0000000000000000000000000000000000000000..8d336bc450632183a8a003e10116cf3af232ac07 GIT binary patch literal 819 zcmcE7ks@*G{hX<16=n7(EZlq7iGhJ3fq{Y58c6R1(gzqA7$q23w%r5r85mg3vjF*j z7+AHh0C`;u5r4k`=@)E*S;Y(tOhxP=)kZ+RG5f;4t3Y+zIQ%w!1=5}zTOC<}bOnD> zS1C}PK_-yc$qZD7Ky;rpxFk;4K5fgG1zIa-Qd2#Q-e1Ke+>4+4G{zDRe)$#fa}I@EK}?=xB)Ca zsc9wnm9sGTGkC)_F!_7qSI!iS@FQzbW_ktzcn)rfKOG+~H(u>10Q_@pQz=6mG48SD@kAT5;5~0Z@u~NY|KLxBwJh-yB zBsCYN6&{FS-8^YF4Em8WX!`kp`t|)lek0BlmcU=ZkKwknxK?C>0|md$2B(1TK7nR4 i7YVlV0F%s4gJT8{x^$yw!ENV + + + + InputDeviceSimulator + + + Input Device Simulator + 入力デバイスシミュレータ + + + + Up + アップ + + + + Left + å·¦ + + + + Right + 右 + + + + Down + ダウン + + + + OK + OK + + + + MainWindow + + + 00:00 + + + + + SettingsWidget + + + Form + + + + + Language + 言語 + + + + SystemSettingsSimulator + + + System Settings + システム設定 + + + + Exit + 出口 + + + + Day/Night Mode + 昼/夜モード + + + + Night Mode + ナイトモード + + + + Day Mode + デイモード + + + diff --git a/src/controlbarwidget.cpp b/src/controlbarwidget.cpp new file mode 100644 index 0000000..4627a7b --- /dev/null +++ b/src/controlbarwidget.cpp @@ -0,0 +1,112 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "controlbarwidget.h" +#include "ui_controlbarwidget.h" + +ControlBarWidget::ControlBarWidget(QWidget *parent) : + QWidget(parent), + mp_ui(new Ui::ControlBarWidget), + mp_settingsWidget(0), + mp_dBusDayNightMode_SettingsWidget(0), + m_dayNightMode(SystemDayNight::DAYNIGHTMODE_DAY), // TODO: read from system + mp_daynightmodeAdaptor(0) +{ + // publish dbus day night mode interface + mp_daynightmodeAdaptor = new DaynightmodeAdaptor((QObject*)this); + QDBusConnection dbus = QDBusConnection::sessionBus(); + dbus.registerObject("/ControlBarWidget", this); + dbus.registerService("org.agl.mainwindow"); + + mp_ui->setupUi(this); +} + +ControlBarWidget::~ControlBarWidget() +{ + delete mp_daynightmodeAdaptor; + if (0 != mp_settingsWidget) + { + delete mp_settingsWidget; + } + if (0 == mp_dBusDayNightMode_SettingsWidget) + { + delete mp_dBusDayNightMode_SettingsWidget; + } + delete mp_ui; +} + +void ControlBarWidget::setDayNightMode(int mode) +{ + QIcon icon; + switch (mode) + { + case SystemDayNight::DAYNIGHTMODE_DAY: + m_dayNightMode = SystemDayNight::DAYNIGHTMODE_DAY; + mp_ui->widget_Background->setStyleSheet(QString("background-image: url(:/images/backgrounds/bg_green_day.png)")); + + icon.addFile(QStringLiteral(":/icons/home_day.png"), QSize(), QIcon::Normal, QIcon::Off); + mp_ui->pushButton_Home->setIcon(icon); + icon.addFile(QStringLiteral(":/icons/settings_day.png"), QSize(), QIcon::Normal, QIcon::Off); + mp_ui->pushButton_Settings->setIcon(icon); + break; + case SystemDayNight::DAYNIGHTMODE_NIGHT: + m_dayNightMode = SystemDayNight::DAYNIGHTMODE_NIGHT; + mp_ui->widget_Background->setStyleSheet(QString("background-image: url(:/images/backgrounds/bg_green_night.png)")); + + icon.addFile(QStringLiteral(":/icons/home_night.png"), QSize(), QIcon::Normal, QIcon::Off); + mp_ui->pushButton_Home->setIcon(icon); + icon.addFile(QStringLiteral(":/icons/settings_night.png"), QSize(), QIcon::Normal, QIcon::Off); + mp_ui->pushButton_Settings->setIcon(icon); + break; + default: + m_dayNightMode = SystemDayNight::DAYNIGHTMODE_UNDEFINED; + } + + // settings widget if present + if (0 != mp_dBusDayNightMode_SettingsWidget) + { + mp_dBusDayNightMode_SettingsWidget->setDayNightMode(m_dayNightMode); + } +} + +void ControlBarWidget::on_pushButton_Settings_clicked() +{ + if (0 == mp_settingsWidget) + { + mp_settingsWidget = new SettingsWidget((QWidget*)parent()); + } + + mp_settingsWidget->move(0, 60); + mp_settingsWidget->show(); + + if (0 == mp_dBusDayNightMode_SettingsWidget) + { + // connect to the dBus interface provided by the settings widget + mp_dBusDayNightMode_SettingsWidget = new org::agl::daynightmode("org.agl.mainwindow", + "/SettingsWidget", + QDBusConnection::sessionBus(), + 0); + mp_dBusDayNightMode_SettingsWidget->setDayNightMode(m_dayNightMode); + } +} + +void ControlBarWidget::on_pushButton_Home_clicked() +{ + if (0 != mp_settingsWidget) + { + mp_settingsWidget->hide(); + } +} diff --git a/src/controlbarwidget.h b/src/controlbarwidget.h new file mode 100644 index 0000000..9d4fa7f --- /dev/null +++ b/src/controlbarwidget.h @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef CONTROLBARWIDGET_H +#define CONTROLBARWIDGET_H + +#include +#include "include/daynightmode.h" +#include "daynightmode_adapter.h" +#include "daynightmode_proxy.h" +#include "settingswidget.h" + +namespace Ui { +class ControlBarWidget; +} + +class ControlBarWidget : public QWidget +{ + Q_OBJECT + +public: + explicit ControlBarWidget(QWidget *parent = 0); + ~ControlBarWidget(); + +// from daynightmode_adapter.h +public Q_SLOTS: + void setDayNightMode(int mode); + inline int getDayNightMode() + { + return (int)m_dayNightMode; + } + +private slots: + void on_pushButton_Settings_clicked(); + + void on_pushButton_Home_clicked(); + +private: + Ui::ControlBarWidget *mp_ui; + SettingsWidget *mp_settingsWidget; + org::agl::daynightmode *mp_dBusDayNightMode_SettingsWidget; + + SystemDayNight::eDayNightMode m_dayNightMode; + DaynightmodeAdaptor *mp_daynightmodeAdaptor; +}; + +#endif // CONTROLBARWIDGET_H diff --git a/src/inputdevicesimulator.cpp b/src/inputdevicesimulator.cpp new file mode 100644 index 0000000..fcadbc6 --- /dev/null +++ b/src/inputdevicesimulator.cpp @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "inputdevicesimulator.h" +#include "ui_inputdevicesimulator.h" +#include + + +InputDeviceSimulator::InputDeviceSimulator(QWidget *parent) : + QDialog(parent), + mp_ui(new Ui::InputDeviceSimulator), + mp_dBusInputevent(0) +{ + mp_ui->setupUi(this); + + // connect to the dBus interface provided by the input device distributor + mp_dBusInputevent = new org::agl::inputevent("org.agl.main", + "/InputEventDistributor", + QDBusConnection::sessionBus(), + 0); + + QSettings settings; + this->restoreGeometry(settings.value("inputdevicesimulator/geometry").toByteArray()); +} + +InputDeviceSimulator::~InputDeviceSimulator() +{ + QSettings settings; + settings.setValue("inputdevicesimulator/geometry", saveGeometry()); + + if (0 == mp_dBusInputevent) + { + delete mp_dBusInputevent; + } + + delete mp_ui; +} + +void InputDeviceSimulator::on_pushButtonRight_clicked() +{ + qDebug("right"); + mp_dBusInputevent->keyEvent(SystemInputEvent::INPUTEVENTTYPE_KEY_PRESSED, SystemInputEvent::INPUTEVENTZONE_1, Qt::Key_Right); +} diff --git a/src/inputdevicesimulator.h b/src/inputdevicesimulator.h new file mode 100644 index 0000000..e22beee --- /dev/null +++ b/src/inputdevicesimulator.h @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef INPUTDEVICESIMULATOR_H +#define INPUTDEVICESIMULATOR_H + +#include +#include "include/inputevent.h" +#include "inputevent_proxy.h" + +namespace Ui { +class InputDeviceSimulator; +} + +class InputDeviceSimulator : public QDialog +{ + Q_OBJECT + +public: + explicit InputDeviceSimulator(QWidget *parent = 0); + ~InputDeviceSimulator(); + +private slots: + void on_pushButtonRight_clicked(); + +private: + Ui::InputDeviceSimulator *mp_ui; + org::agl::inputevent *mp_dBusInputevent; +}; + +#endif // INPUTDEVICESIMULATOR_H diff --git a/src/inputeventdistributor.cpp b/src/inputeventdistributor.cpp new file mode 100644 index 0000000..911b90f --- /dev/null +++ b/src/inputeventdistributor.cpp @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "inputeventdistributor.h" +#include + +InputEventDistributor::InputEventDistributor(QObject *parent) : + QObject(parent), + mp_inputEventAdaptor(0) +{ + // publish dbus popup interface + mp_inputEventAdaptor = new InputeventAdaptor((QObject*)this); + QDBusConnection dbus = QDBusConnection::sessionBus(); + dbus.registerObject("/InputEventDistributor", this); + dbus.registerService("org.agl.main"); +} + +InputEventDistributor::~InputEventDistributor() +{ + delete mp_inputEventAdaptor; +} + +void InputEventDistributor::keyEvent(int type, int zone, int key) +{ + qDebug("InputEventDistributor::keyEvent type 0x%x, key 0x%x", type, key); + + //QEvent *event; + switch (type) + { + case SystemInputEvent::INPUTEVENTTYPE_KEY_PRESSED: + + break; + default: + qDebug("InputEventDistributor::keyEvent: Type 0x%x undefined", type); + } + +} diff --git a/src/inputeventdistributor.h b/src/inputeventdistributor.h new file mode 100644 index 0000000..fe8ed89 --- /dev/null +++ b/src/inputeventdistributor.h @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef INPUTEVENTDISTRIBUTOR_H +#define INPUTEVENTDISTRIBUTOR_H + +#include +#include "include/inputevent.h" +#include "inputevent_adapter.h" + + +class InputEventDistributor : public QObject +{ + Q_OBJECT +public: + explicit InputEventDistributor(QObject *parent = 0); + ~InputEventDistributor(); + +signals: + +public slots: +public Q_SLOTS: // METHODS + void keyEvent(int type, int zone, int key); +private: + InputeventAdaptor *mp_inputEventAdaptor; +}; + +#endif // INPUTEVENTDISTRIBUTOR_H diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..fac6e2f --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "mainwindow.h" +#include "include/daynightmode.h" +#include +#include +#include +#include "inputeventdistributor.h" + +#ifdef __i386__ +#include "inputdevicesimulator.h" +#include "systemsettingssimulator.h" +#endif + + +int main(int argc, char *argv[]) +{ + // allow only one instance of this application + QSharedMemory appInstance; + appInstance.setKey("AGLHomeScreenApp"); + if (!appInstance.create(1)) + { + qDebug("Only one instance of the Home Screen App allowed!"); + exit(-1); + } + + QApplication a(argc, argv); + + // used for application settings (QSettings) + QCoreApplication::setOrganizationDomain("LinuxFoundation"); + QCoreApplication::setOrganizationName("AutomotiveGradeLinux"); + QCoreApplication::setApplicationName("HomeScreen"); + QCoreApplication::setApplicationVersion("0.0.1"); + + MainWindow w; + w.move(0, 0); + w.show(); + + InputEventDistributor *mp_inputEventDistributor; + mp_inputEventDistributor = new InputEventDistributor(); + + + // start input and system settings simulator on developer PCs +#ifdef __arm__ + qDebug("Running on ARM architecture"); +#endif +#ifdef __i386__ + InputDeviceSimulator inputdevicesimulator(&w); + inputdevicesimulator.show(); + SystemSettingsSimulator systemsettingssimulator; + systemsettingssimulator.show(); + qDebug("Running on x86 architecture"); +#endif + + return a.exec(); +} diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp new file mode 100644 index 0000000..40189b3 --- /dev/null +++ b/src/mainwindow.cpp @@ -0,0 +1,149 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "mainwindow.h" +#include "ui_mainwindow.h" + +MainWindow::MainWindow(QWidget *parent) : + QMainWindow(parent), + mp_ui(new Ui::MainWindow), + mp_statusBarWidget(0), + mp_dBusDayNightMode_StatusBarWidget(0), + mp_controlBarWidget(0), + mp_dBusDayNightMode_ControlBarWidget(0), + m_dayNightMode(SystemDayNight::DAYNIGHTMODE_DAY), // TODO: read from system + mp_daynightmodeAdaptor(0), + mp_popupAdaptor(0), + mp_dBusPopup(0), + mp_popupWidget(0) +{ + // dbus setup + QDBusConnection dbus = QDBusConnection::sessionBus(); + + // publish dbus day night mode interface + mp_daynightmodeAdaptor = new DaynightmodeAdaptor((QObject*)this); + // publish dbus popup interface + mp_popupAdaptor = new PopupAdaptor((QObject*)this); + + dbus.registerObject("/MainWindow", this); + dbus.registerService("org.agl.mainwindow"); + + // no window decoration + setWindowFlags(Qt::FramelessWindowHint); + mp_ui->setupUi(this); + + mp_statusBarWidget = new StatusBarWidget(this); + mp_statusBarWidget->raise(); + // apply layout + mp_statusBarWidget->setGeometry(0, 0, 800, 60); + // connect to the dBus interface provided by the status bar widget + mp_dBusDayNightMode_StatusBarWidget = new org::agl::daynightmode("org.agl.mainwindow", + "/StatusBarWidget", + QDBusConnection::sessionBus(), + 0); + + mp_controlBarWidget = new ControlBarWidget(this); + mp_controlBarWidget->raise(); + // apply layout + mp_controlBarWidget->setGeometry(0, 540, 800, 60); + // connect to the dBus interface provided by the control bar widget + mp_dBusDayNightMode_ControlBarWidget = new org::agl::daynightmode("org.agl.mainwindow", + "/ControlBarWidget", + QDBusConnection::sessionBus(), + 0); +} + +MainWindow::~MainWindow() +{ + delete mp_dBusDayNightMode_ControlBarWidget; + delete mp_dBusDayNightMode_StatusBarWidget; + + if (0 == mp_dBusPopup) + { + delete mp_dBusPopup; + } + if (0 != mp_popupWidget) + { + delete mp_popupWidget; + } + + + + delete mp_popupAdaptor; + delete mp_daynightmodeAdaptor; + delete mp_statusBarWidget; + delete mp_ui; +} + +void MainWindow::setDayNightMode(int mode) +{ + switch (mode) + { + case SystemDayNight::DAYNIGHTMODE_DAY: + m_dayNightMode = SystemDayNight::DAYNIGHTMODE_DAY; + mp_ui->widget_Background->setStyleSheet(QString("background-image: url(:/images/backgrounds/bg_blue_day.png)")); + // home icon + mp_ui->widget_Home_Icon->setStyleSheet(QString("border-image: url(:/icons/home_day.png) 0 0 0 0 stretch stretch;")); + + break; + case SystemDayNight::DAYNIGHTMODE_NIGHT: + m_dayNightMode = SystemDayNight::DAYNIGHTMODE_NIGHT; + mp_ui->widget_Background->setStyleSheet(QString("background-image: url(:/images/backgrounds/bg_blue_night.png)")); + // home icon + mp_ui->widget_Home_Icon->setStyleSheet(QString("border-image: url(:/icons/home_night.png) 0 0 0 0 stretch stretch;")); + + break; + default: + m_dayNightMode = SystemDayNight::DAYNIGHTMODE_UNDEFINED; + } + + mp_dBusDayNightMode_StatusBarWidget->setDayNightMode(m_dayNightMode); + mp_dBusDayNightMode_ControlBarWidget->setDayNightMode(m_dayNightMode); +} + +void MainWindow::showPopup(int type, const QString &text) +{ + if (0 == mp_popupWidget) + { + qDebug("0 == mp_popupWidget"); + mp_popupWidget = new PopupWidget(this); + } + + mp_popupWidget->move(0, 0); + mp_popupWidget->show(); + + if (0 == mp_dBusPopup) + { + qDebug("0 == mp_dBusPopup"); + // connect to the dBus interface provided by the popup widget + mp_dBusPopup = new org::agl::popup("org.agl.mainwindow", + "/PopupWidget", + QDBusConnection::sessionBus(), + 0); + } + mp_dBusPopup->showPopup(type, text); +} + +void MainWindow::changeEvent(QEvent* event) +{ + if (QEvent::LanguageChange == event->type()) + { + mp_ui->retranslateUi(this); + } + + QMainWindow::changeEvent(event); +} + diff --git a/src/mainwindow.h b/src/mainwindow.h new file mode 100644 index 0000000..a87d88d --- /dev/null +++ b/src/mainwindow.h @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include "include/daynightmode.h" +#include "daynightmode_adapter.h" +#include "daynightmode_proxy.h" +#include "popupwidget.h" +#include "include/popup.h" +#include "popup_adapter.h" +#include "popup_proxy.h" + +#include "statusbarwidget.h" +#include "controlbarwidget.h" + +namespace Ui { +class MainWindow; +} + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit MainWindow(QWidget *parent = 0); + ~MainWindow(); + +// from daynightmode_adapter.h +public Q_SLOTS: + void setDayNightMode(int mode); + inline int getDayNightMode() + { + return (int)m_dayNightMode; + } + +// from popup_adapter.h +public Q_SLOTS: // METHODS + void showPopup(int type, const QString &text); + +protected: + // called when the translator loaded a new language set + void changeEvent(QEvent* event); + +private: + Ui::MainWindow *mp_ui; + + StatusBarWidget *mp_statusBarWidget; + org::agl::daynightmode *mp_dBusDayNightMode_StatusBarWidget; + ControlBarWidget *mp_controlBarWidget; + org::agl::daynightmode *mp_dBusDayNightMode_ControlBarWidget; + + // dbus daynightmode + SystemDayNight::eDayNightMode m_dayNightMode; + DaynightmodeAdaptor *mp_daynightmodeAdaptor; + + // dbus popup + PopupAdaptor *mp_popupAdaptor; + org::agl::popup *mp_dBusPopup; + + PopupWidget *mp_popupWidget; +}; + +#endif // MAINWINDOW_H diff --git a/src/popupwidget.cpp b/src/popupwidget.cpp new file mode 100644 index 0000000..54573ad --- /dev/null +++ b/src/popupwidget.cpp @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "popupwidget.h" +#include "ui_popupwidget.h" + +PopupWidget::PopupWidget(QWidget *parent) : + QWidget(parent), + mp_ui(new Ui::PopupWidget), + mp_popupAdaptor(0) +{ + mp_ui->setupUi(this); + + // publish dbus popup interface + mp_popupAdaptor = new PopupAdaptor((QObject*)this); + QDBusConnection dbus = QDBusConnection::sessionBus(); + dbus.registerObject("/PopupWidget", this); + dbus.registerService("org.agl.mainwindow"); +} + +PopupWidget::~PopupWidget() +{ + delete mp_popupAdaptor; + delete mp_ui; +} + +void PopupWidget::showPopup(int type, const QString &text) +{ + qDebug("PopupWidget::showPopup: type %d, text %s", type, text.toStdString().c_str()); + mp_ui->label_Text->setText(text); +} + +void PopupWidget::on_pushButton_OK_clicked() +{ + this->close(); +} diff --git a/src/popupwidget.h b/src/popupwidget.h new file mode 100644 index 0000000..201cbc3 --- /dev/null +++ b/src/popupwidget.h @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef POPUPWIDGET_H +#define POPUPWIDGET_H + +#include +#include "include/popup.h" +#include "popup_adapter.h" + +namespace Ui { +class PopupWidget; +} + +class PopupWidget : public QWidget +{ + Q_OBJECT + +public: + explicit PopupWidget(QWidget *parent = 0); + ~PopupWidget(); + +// from popup_adapter.h +public Q_SLOTS: // METHODS + void showPopup(int type, const QString &text); + +private slots: + void on_pushButton_OK_clicked(); + +private: + Ui::PopupWidget *mp_ui; + + PopupAdaptor *mp_popupAdaptor; +}; + +#endif // POPUPWIDGET_H diff --git a/src/settingswidget.cpp b/src/settingswidget.cpp new file mode 100644 index 0000000..24085e8 --- /dev/null +++ b/src/settingswidget.cpp @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "settingswidget.h" +#include "ui_settingswidget.h" +#include "include/daynightmode.h" +#include + +SettingsWidget::SettingsWidget(QWidget *parent) : + QWidget(parent), + mp_ui(new Ui::SettingsWidget), + m_dayNightMode(SystemDayNight::DAYNIGHTMODE_DAY), // TODO: read from system + mp_daynightmodeAdaptor(0), + mp_translator(0) +{ + // publish dbus day night mode interface + mp_daynightmodeAdaptor = new DaynightmodeAdaptor((QObject*)this); + QDBusConnection dbus = QDBusConnection::sessionBus(); + dbus.registerObject("/SettingsWidget", this); + dbus.registerService("org.agl.mainwindow"); + + // multi-language support + mp_translator = new QTranslator(); + mp_translator->load("homescreen_en_US.qm", ":/translations"); // TODO: read from system + QApplication::instance()->installTranslator(mp_translator); + + mp_ui->setupUi(this); + + mp_ui->comboBoxLanguage->addItem(QString("English"), QVariant("homescreen_en_US.qm")); // TODO: make this configurable? + mp_ui->comboBoxLanguage->addItem(QString("Deutsch"), QVariant("homescreen_de_DE.qm")); + mp_ui->comboBoxLanguage->addItem(QString("日本語"), QVariant("homescreen_ja_JP.qm")); + + QSettings settings; + mp_ui->comboBoxLanguage->setCurrentIndex(settings.value("systemsettings/language", 0).toInt()); +} + +SettingsWidget::~SettingsWidget() +{ + delete mp_translator; + delete mp_daynightmodeAdaptor; + + QSettings settings; + settings.setValue("systemsettings/language", mp_ui->comboBoxLanguage->currentIndex()); + delete mp_ui; +} + +void SettingsWidget::setDayNightMode(int mode) +{ + switch (mode) + { + case SystemDayNight::DAYNIGHTMODE_DAY: + m_dayNightMode = SystemDayNight::DAYNIGHTMODE_DAY; + mp_ui->widget_Background->setStyleSheet(QString("background-image: url(:/images/backgrounds/bg_blue_day.png);")); + mp_ui->comboBoxLanguage->setStyleSheet(QString("QComboBox { \ + border: 1px solid #D3D3D3; \ + border-radius: 8px; \ + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(242, 242, 249, 255), stop:1 rgba(255, 255, 255, 255)); \ + color: #333; \ + padding: 0px; \ + } \ + QComboBox:on { \ + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #D5D5D5, stop: 1 #EEEEEE); \ + } \ + QComboBox::drop-down { \ + border: 0px solid; \ + border-radius: 0px; \ + } \ + QComboBox::down-arrow:on { \ + }")); + // settings icon + mp_ui->widget_Settings_Icon->setStyleSheet(QString("border-image: url(:/icons/settings_day.png) 0 0 0 0 stretch stretch;")); + break; + case SystemDayNight::DAYNIGHTMODE_NIGHT: + m_dayNightMode = SystemDayNight::DAYNIGHTMODE_NIGHT; + mp_ui->widget_Background->setStyleSheet(QString("background-image: url(:/images/backgrounds/bg_blue_night.png);")); + mp_ui->comboBoxLanguage->setStyleSheet(QString("QComboBox { \ + border: 1px solid #D3D3D3; \ + border-radius: 8px; \ + background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(147, 147, 151, 255), stop:1 rgba(255, 255, 255, 255)); \ + color: #333; \ + padding: 0px; \ + } \ + QComboBox:on { \ + background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,stop: 0 #D5D5D5, stop: 1 #EEEEEE); \ + } \ + QComboBox::drop-down { \ + border: 0px solid; \ + border-radius: 0px; \ + } \ + QComboBox::down-arrow:on { \ + }")); + // settings icon + mp_ui->widget_Settings_Icon->setStyleSheet(QString("border-image: url(:/icons/settings_night.png) 0 0 0 0 stretch stretch;")); + break; + default: + m_dayNightMode = SystemDayNight::DAYNIGHTMODE_UNDEFINED; + } +} + +void SettingsWidget::changeEvent(QEvent* event) +{ + if (QEvent::LanguageChange == event->type()) + { + mp_ui->retranslateUi(this); + } + + QWidget::changeEvent(event); +} + +void SettingsWidget::on_comboBoxLanguage_currentIndexChanged(const QString &) +{ + if (0 != mp_translator) + mp_translator->load(mp_ui->comboBoxLanguage->currentData().toString(), ":/translations"); +} diff --git a/src/settingswidget.h b/src/settingswidget.h new file mode 100644 index 0000000..f49da8d --- /dev/null +++ b/src/settingswidget.h @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SETTINGSWIDGET_H +#define SETTINGSWIDGET_H + +#include +#include +#include "include/daynightmode.h" +#include "daynightmode_adapter.h" + +namespace Ui { +class SettingsWidget; +} + +class SettingsWidget : public QWidget +{ + Q_OBJECT + +public: + explicit SettingsWidget(QWidget *parent = 0); + ~SettingsWidget(); + +// from daynightmode_adapter.h +public Q_SLOTS: + void setDayNightMode(int mode); + inline int getDayNightMode() + { + return (int)m_dayNightMode; + } + +protected: + // called when the translator loaded a new language set + void changeEvent(QEvent* event); + +private slots: + void on_comboBoxLanguage_currentIndexChanged(const QString &); + +private: + Ui::SettingsWidget *mp_ui; + + SystemDayNight::eDayNightMode m_dayNightMode; + DaynightmodeAdaptor *mp_daynightmodeAdaptor; + + QTranslator *mp_translator; +}; + +#endif // SETTINGSWIDGET_H diff --git a/src/statusbarwidget.cpp b/src/statusbarwidget.cpp new file mode 100644 index 0000000..775a9ec --- /dev/null +++ b/src/statusbarwidget.cpp @@ -0,0 +1,118 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "statusbarwidget.h" +#include "ui_statusbarwidget.h" + +StatusBarWidget::StatusBarWidget(QWidget *parent) : + QWidget(parent), + mp_ui(new Ui::StatusBarWidget), + m_dayNightMode(SystemDayNight::DAYNIGHTMODE_DAY), // TODO: read from system + mp_daynightmodeAdaptor(0), + mp_statusbarAdaptor(0), + m_secondsTimerId(-1) +{ + // publish dbus day night mode interface + mp_daynightmodeAdaptor = new DaynightmodeAdaptor((QObject*)this); + // publish statusbar interface + mp_statusbarAdaptor = new StatusbarAdaptor((QObject*)this); + + QDBusConnection dbus = QDBusConnection::sessionBus(); + dbus.registerObject("/StatusBarWidget", this); + dbus.registerService("org.agl.mainwindow"); + + mp_ui->setupUi(this); + + // callback every second + m_secondsTimerId = startTimer(1000); +} + +StatusBarWidget::~StatusBarWidget() +{ + delete mp_statusbarAdaptor; + delete mp_daynightmodeAdaptor; + delete mp_ui; +} + +void StatusBarWidget::setDayNightMode(int mode) +{ + switch (mode) + { + case SystemDayNight::DAYNIGHTMODE_DAY: + m_dayNightMode = SystemDayNight::DAYNIGHTMODE_DAY; + mp_ui->widget->setStyleSheet(QString("background-image: url(:/images/backgrounds/bg_stripes_day.png)")); + mp_ui->label_1->setStyleSheet(QString("color: rgb(238, 238, 238); background-image: url(:/images/transparency.png);")); + mp_ui->label_2->setStyleSheet(QString("color: rgb(238, 238, 238); background-image: url(:/images/transparency.png);")); + mp_ui->label_3->setStyleSheet(QString("color: rgb(238, 238, 238); background-image: url(:/images/transparency.png);")); + mp_ui->label_4_Time->setStyleSheet(QString("color: rgb(238, 238, 238); background-image: url(:/images/transparency.png);")); + mp_ui->label_5->setStyleSheet(QString("color: rgb(238, 238, 238); background-image: url(:/images/transparency.png);")); + mp_ui->label_6->setStyleSheet(QString("color: rgb(238, 238, 238); background-image: url(:/images/transparency.png);")); + mp_ui->label_7->setStyleSheet(QString("color: rgb(238, 238, 238); background-image: url(:/images/transparency.png);")); + break; + case SystemDayNight::DAYNIGHTMODE_NIGHT: + m_dayNightMode = SystemDayNight::DAYNIGHTMODE_NIGHT; + mp_ui->widget->setStyleSheet(QString("background-image: url(:/images/backgrounds/bg_stripes_night.png)")); + mp_ui->label_1->setStyleSheet(QString("color: rgb(177, 177, 177); background-image: url(:/images/transparency.png);")); + mp_ui->label_2->setStyleSheet(QString("color: rgb(177, 177, 177); background-image: url(:/images/transparency.png);")); + mp_ui->label_3->setStyleSheet(QString("color: rgb(177, 177, 177); background-image: url(:/images/transparency.png);")); + mp_ui->label_4_Time->setStyleSheet(QString("color: rgb(177, 177, 177); background-image: url(:/images/transparency.png);")); + mp_ui->label_5->setStyleSheet(QString("color: rgb(177, 177, 177); background-image: url(:/images/transparency.png);")); + mp_ui->label_6->setStyleSheet(QString("color: rgb(177, 177, 177); background-image: url(:/images/transparency.png);")); + mp_ui->label_7->setStyleSheet(QString("color: rgb(177, 177, 177); background-image: url(:/images/transparency.png);")); + break; + default: + m_dayNightMode = SystemDayNight::DAYNIGHTMODE_UNDEFINED; + } +} + +void StatusBarWidget::setStatus(int index, const QString &text) +{ + switch (index) + { + case 1: + mp_ui->label_1->setText(text); + break; + case 2: + mp_ui->label_2->setText(text); + break; + case 3: + mp_ui->label_3->setText(text); + break; + case 4: + qDebug("reserved for the time status"); + break; + case 5: + mp_ui->label_5->setText(text); + break; + case 6: + mp_ui->label_6->setText(text); + break; + case 7: + mp_ui->label_7->setText(text); + break; + default: + break; + } +} + +void StatusBarWidget::timerEvent(QTimerEvent *e) +{ + if (e->timerId() == m_secondsTimerId) + { + mp_ui->label_4_Time->setText(QDateTime::currentDateTime().toString("hh:mm")); + } +} + diff --git a/src/statusbarwidget.h b/src/statusbarwidget.h new file mode 100644 index 0000000..2547d34 --- /dev/null +++ b/src/statusbarwidget.h @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef STATUSBARWIDGET_H +#define STATUSBARWIDGET_H + +#include +#include "include/daynightmode.h" +#include "daynightmode_adapter.h" +#include "statusbar_adapter.h" + +namespace Ui { +class StatusBarWidget; +} + +class StatusBarWidget : public QWidget +{ + Q_OBJECT + +public: + explicit StatusBarWidget(QWidget *parent = 0); + ~StatusBarWidget(); + +// from daynightmode_adapter.h +public Q_SLOTS: + void setDayNightMode(int mode); + inline int getDayNightMode() + { + return (int)m_dayNightMode; + } + +// from statusbar_adapter.h +public Q_SLOTS: // METHODS + void setStatus(int index, const QString &text); + +protected: + void timerEvent(QTimerEvent *e); + +private: + Ui::StatusBarWidget *mp_ui; + + SystemDayNight::eDayNightMode m_dayNightMode; + DaynightmodeAdaptor *mp_daynightmodeAdaptor; + StatusbarAdaptor *mp_statusbarAdaptor; + + int m_secondsTimerId; +}; + +#endif // STATUSBARWIDGET_H diff --git a/src/systemsettingssimulator.cpp b/src/systemsettingssimulator.cpp new file mode 100644 index 0000000..b1ed6b3 --- /dev/null +++ b/src/systemsettingssimulator.cpp @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "systemsettingssimulator.h" +#include "ui_systemsettingssimulator.h" +#include "include/daynightmode.h" +#include + +SystemSettingsSimulator::SystemSettingsSimulator(QWidget *parent) : + QDialog(parent), + mp_ui(new Ui::SystemSettingsSimulator), + mp_dBusDayNightMode(0) +{ + mp_ui->setupUi(this); + + // connect to the dBus interface provided by the main window + mp_dBusDayNightMode = new org::agl::daynightmode("org.agl.mainwindow", + "/MainWindow", + QDBusConnection::sessionBus(), + 0); + + QSettings settings; + this->restoreGeometry(settings.value("systemsettingssimulator/geometry").toByteArray()); + mp_ui->radioButton_DayMode->setChecked(settings.value("systemsettingssimulator/daymode", true).toBool()); // if nothing is stored, use "true" + mp_ui->radioButton_NightMode->setChecked(settings.value("systemsettingssimulator/nightmode", false).toBool()); // if nothing is stored, use "false" +} + +SystemSettingsSimulator::~SystemSettingsSimulator() +{ + QSettings settings; + settings.setValue("systemsettingssimulator/geometry", saveGeometry()); + settings.setValue("systemsettingssimulator/daymode", mp_ui->radioButton_DayMode->isChecked()); + settings.setValue("systemsettingssimulator/nightmode", mp_ui->radioButton_NightMode->isChecked()); + + if (0 == mp_dBusDayNightMode) + { + delete mp_dBusDayNightMode; + } + delete mp_ui; +} + +void SystemSettingsSimulator::on_pushButton_Exit_clicked() +{ + QApplication::exit(); +} + +void SystemSettingsSimulator::on_radioButton_DayMode_toggled(bool checked) +{ + if (checked) + { + mp_dBusDayNightMode->setDayNightMode(SystemDayNight::DAYNIGHTMODE_DAY); + } +} + +void SystemSettingsSimulator::on_radioButton_NightMode_toggled(bool checked) +{ + if (checked) + { + mp_dBusDayNightMode->setDayNightMode(SystemDayNight::DAYNIGHTMODE_NIGHT); + } +} diff --git a/src/systemsettingssimulator.h b/src/systemsettingssimulator.h new file mode 100644 index 0000000..cba7a14 --- /dev/null +++ b/src/systemsettingssimulator.h @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2016 Mentor Graphics Development (Deutschland) GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef SYSTEMSETTINGSSIMULATOR_H +#define SYSTEMSETTINGSSIMULATOR_H + +#include +#include "include/daynightmode.h" +#include "daynightmode_proxy.h" + +namespace Ui { +class SystemSettingsSimulator; +} + +class SystemSettingsSimulator : public QDialog +{ + Q_OBJECT + +public: + explicit SystemSettingsSimulator(QWidget *parent = 0); + ~SystemSettingsSimulator(); + +private slots: + void on_pushButton_Exit_clicked(); + void on_radioButton_DayMode_toggled(bool checked); + + void on_radioButton_NightMode_toggled(bool checked); + +private: + Ui::SystemSettingsSimulator *mp_ui; + org::agl::daynightmode *mp_dBusDayNightMode; +}; + +#endif // SYSTEMSETTINGSSIMULATOR_H -- 2.16.6