diff --git a/CMakeLists.txt b/CMakeLists.txt index 3159722c543f7c58d882ba6f9f19b489847e9fb8..ae9604a1372ac285c10c7a8392fa64304da802e3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,9 @@ project(Vivy VERSION 0.1 LANGUAGES CXX) cmake_policy(SET CMP0100 NEW) # Let cmake use moc and uic for .hh files cmake_policy(SET CMP0009 NEW) # Do not follow symlinks with GLOB_RECURSE +# Pass -fPIC +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + # For Qt set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) @@ -62,6 +65,7 @@ target_precompile_headers(Vivy PRIVATE # STL headers <memory> <vector> + <atomic> # Qt headers <QString> @@ -96,20 +100,32 @@ target_compile_options(Vivy PRIVATE -Wmisleading-indentation -Wnull-dereference -Wdouble-promotion -Wformat=2 -Woverloaded-virtual -Wnon-virtual-dtor + -Wignored-qualifiers + + -fopenmp ) +target_link_libraries(Vivy PRIVATE -fopenmp) + # Some compiler specific warnings and options if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") target_compile_options(Vivy PRIVATE - -Wno-unused-private-field # Skip the unused private fields for now - -fopenmp # We do OpenMP here + -Weverything + + # Disable some things because we want C++20 and don't constrol some Qt + # generated files... + -Wno-c++98-compat -Wno-c++98-c++11-c++14-c++17-compat-pedantic + -Wno-extra-semi-stmt + -Wno-redundant-parens + -Wno-padded + -Wno-global-constructors + -Wno-exit-time-destructors ) target_link_libraries(Vivy PRIVATE -fopenmp ) elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") target_compile_options(Vivy PRIVATE -fopenmp) - target_link_libraries(Vivy PRIVATE -fopenmp) endif() set_target_properties(Vivy PROPERTIES diff --git a/README.md b/README.md index e4a74754eb1a08f03bdb876755146a853b5e4f78..7f1ab8e160f13557401474e31427e293fef1d57e 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Simply use cmake to build in another folder of the source folder: ``` -cmake -Bbuild -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_COMPILER=clang +cmake -Bbuild -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang ``` If you want to use the `compile_commands.json`, use the diff --git a/src/Lib/Ass/AssFactory.cc b/src/Lib/Ass/AssFactory.cc index 06bd5db2f487e370ad6d301cd98e96b59fbfae75..a8768767f6b4e9e3cb5b0a68e354be62ffdc0131 100644 --- a/src/Lib/Ass/AssFactory.cc +++ b/src/Lib/Ass/AssFactory.cc @@ -89,7 +89,7 @@ AssFactory::checkValidity() const noexcept const SectionContent::const_iterator end = assInfo.end(); while (it != end) { bool ok = false; - if (intTypeFields.contains(it.key()) && (it.value().toInt(&ok), !ok)) { + if (intTypeFields.contains(it.key()) && (static_cast<void>(it.value().toInt(&ok)), !ok)) { qCritical() << it.key() << "is not an integer:" << it.value(); return false; } diff --git a/src/Lib/Ass/Line.cc b/src/Lib/Ass/Line.cc index 7fabdbace9fdd01450f41f49c1f295b91ff5e88b..c509af7449227b27421f446ed348c3c23121474d 100644 --- a/src/Lib/Ass/Line.cc +++ b/src/Lib/Ass/Line.cc @@ -24,8 +24,8 @@ Line::Line(AssFactory *const factory, const QString &lineString) // NOTE: time is of the form: `h:mm:ss.cc` }; - static const QString lineHeader = "Dialogue: "; - isComment = !lineString.startsWith(lineHeader); + const QString lineHeader = QStringLiteral("Dialogue: "); + isComment = !lineString.startsWith(lineHeader); const QString lineContent = lineString.mid(lineString.indexOf(": ") + 2 /* strlen ": " */); QStringList contentList = lineContent.split(",", Qt::KeepEmptyParts, Qt::CaseInsensitive); @@ -80,6 +80,7 @@ Line::initSylFromString(const QString &line) noexcept } } catch (const std::runtime_error &e) { qCritical() << "Failed to init syllabes with line:" << line; + qCritical() << "Error was:" << e.what(); qCritical() << "Fallback to all line is one syllabe"; once = false; } diff --git a/src/Lib/Ass/Style.cc b/src/Lib/Ass/Style.cc index 80d5eb3183194fbd54272dff550a3aa12f8648f0..4c2fd133bbfbb691d292047865a68dd0d9044eb4 100644 --- a/src/Lib/Ass/Style.cc +++ b/src/Lib/Ass/Style.cc @@ -45,7 +45,7 @@ Style::Style(const QString &styleString) PastLastCode }; - static const QString lineHeader = "Style: "; + const QString lineHeader = QStringLiteral("Style: "); // Check line header and content items number diff --git a/src/Lib/Audio.cc b/src/Lib/Audio.cc index e0d7b4808b7be922ebbb34c5410cfd377716cd4c..d748fb533c4cb19e85741402bdfbb2686a816934 100644 --- a/src/Lib/Audio.cc +++ b/src/Lib/Audio.cc @@ -19,12 +19,12 @@ AudioContext::AudioContext(const QString &path) AVFormatContext *formatPtr = format.get(); // Get the format from the audio file - if (avformat_open_input(&formatPtr, filename, NULL, NULL) != 0) { + if (avformat_open_input(&formatPtr, filename, nullptr, nullptr) != 0) { [[maybe_unused]] void *relatedOnFailure = format.release(); // freed by avformat_open_input throw std::runtime_error("failed to open file"); } - if (avformat_find_stream_info(formatPtr, NULL) < 0) { + if (avformat_find_stream_info(formatPtr, nullptr) < 0) { throw std::runtime_error("failed to get audio stream info"); } @@ -106,14 +106,14 @@ AudioContext::getProperties() const noexcept // AudioContext::Stream class implementation // Constructor, need an AVFormat and an AVStream -AudioContext::Stream::Stream(AVCodec *streamCodec, AVFormatContext *format, AVStream *stream, +AudioContext::Stream::Stream(AVCodec *streamCodec, AVFormatContext *formatPtr, AVStream *stream, int index) : codecId(stream->codecpar->codec_id) , codec(streamCodec) , codecParams(stream->codecpar) , audioStream(stream) , streamIndexInAudioContext(index) - , dataFormat(format) + , dataFormat(formatPtr) { if (codec == nullptr) throw std::runtime_error("failed to find a decoder for stream"); diff --git a/src/UI/AboutWindow.cc b/src/UI/AboutWindow.cc new file mode 100644 index 0000000000000000000000000000000000000000..42ba502a816994dab1408f52c83d6e5638944622 --- /dev/null +++ b/src/UI/AboutWindow.cc @@ -0,0 +1,128 @@ +#include "AboutWindow.hh" + +#include <QCloseEvent> +#include <QLabel> +#include <QPushButton> +#include <QVBoxLayout> +#include <QHBoxLayout> +#include <QEvent> +#include <QMouseEvent> +#include <QApplication> +#include <QTextEdit> + +using namespace Vivy; + +// See https://doc.qt.io/qt-5/richtext-html-subset.html for the supported +// rich text subset. + +static const char *aboutContent = + "<body>" + " <p>Vivy is a replacement for Aegisub, writen in Qt5+and with less segfaults - hopefully.</p>" + "</body>"; + +static const char *libContent = + "<body>" + " <p>Here are the libraries that where used to create the software:</p>" + " <ul>" + " <li><a href=https://doc.qt.io/qt-5/index.html>Qt5</a> © <i>2018 The Qt Company Ltd. and other contributors. (LGPL-V3)</i></li>" + " <li><a href=https://www.lua.org>Lua 5.4</a> © <i>1994–2021 Lua.org, PUC-Rio. (MIT)</i></li>" + " <li><a href=https://libav.org>Libav</a> © <i>Libav contributors. (LGPL-V2.1+)</i></li>" + " </ul>" + " <p>Other external dependencies where used:</p>" + " <ul>" + " <li><a href=https://github.com/tonsky/FiraCode>FiraCode</a> © <i>Nikita Prokopov. (OFL-1.1)</i></li>" + " <li><a href=https://fonts.google.com/specimen/Noto+Sans>NotoSans</a> © <i>Google. (APACHE-2.0)</i>" + " <li><a href=https://github.com/KDE/breeze-icons>The breeze icon theme</a> © <i>The KDE Visual Design Group. (LGPL-V3)</i></li>" + " <li><a href=https://github.com/ColinDuquesnoy/QDarkStyleSheet>QDarkStyleSheet</a> © <i>Colin Duquesnoy, Daniel Cosmo Pizetta. (MIT + CCAI-4.0)</i></li>" + " </ul>" + "</body>"; + +// Simple QLabel with some presets +class SimpleLabel final : public QLabel { +public: + explicit SimpleLabel(QWidget *parent, const char *text) + : QLabel(parent) + { + setTextFormat(Qt::RichText); + setTextInteractionFlags(Qt::NoTextInteraction | Qt::LinksAccessibleByMouse | + Qt::LinksAccessibleByKeyboard); + setText(text); + setAlignment(Qt::AlignJustify | Qt::AlignTop); + } +}; + +// Simple QLabel for licences +class LicenceLabel final : public QTextEdit { +public: + explicit LicenceLabel(QWidget *parent, const QString &url, const Qt::TextFormat format) + : QTextEdit(parent) + { + QFile content(url); + if (!content.open(QIODevice::ReadOnly | QIODevice::Text)) + throw std::runtime_error("Failed to open file that should be accessible"); + + setTextInteractionFlags(Qt::NoTextInteraction); + setAlignment(Qt::AlignJustify | Qt::AlignTop); + setAcceptRichText(true); + setReadOnly(true); + setAutoFormatting(QTextEdit::AutoAll); + + setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); + setFont(vivyApp->getApplicationFont(VivyApplication::Font::Monospace)); + setFrameStyle(QFrame::NoFrame); + + switch (format) { + case Qt::PlainText: + case Qt::RichText: + setText(content.readAll()); + break; + + case Qt::MarkdownText: + setMarkdown(content.readAll()); + break; + + case Qt::AutoText: + qCritical() << "Invalid text format for LicenceLabel" << format; + } + } +}; + +// Construct the AboutWindow +AboutWindow::AboutWindow(QWidget *parent) noexcept + : QMainWindow(parent, Qt::Dialog) + , panels(new QTabWidget) +{ + setWindowIcon(QIcon(VIVY_ICON_APP)); + setWindowTitle("Vivy - About"); + + panels->setMovable(false); + panels->setTabsClosable(false); + panels->setElideMode(Qt::ElideRight); + panels->setUsesScrollButtons(true); + panels->setDocumentMode(false); + + panels->addTab(new SimpleLabel(panels, aboutContent), "About"); + panels->addTab(new SimpleLabel(panels, libContent), "Libraries"); + + QTabWidget *licences = new QTabWidget(panels); + licences->setTabPosition(QTabWidget::TabPosition::West); + licences->addTab(new LicenceLabel(licences, ":licence/MIT", Qt::MarkdownText), "MIT"); + licences->addTab(new LicenceLabel(licences, ":licence/LGPL-V2.0", Qt::PlainText), "LGPL-V2.0"); + licences->addTab(new LicenceLabel(licences, ":licence/LGPL-V2.1", Qt::PlainText), "LGPL-V2.1"); + licences->addTab(new LicenceLabel(licences, ":licence/LGPL-V3", Qt::PlainText), "LGPL-V3"); + licences->addTab(new LicenceLabel(licences, ":licence/OFL-1.1", Qt::MarkdownText), "OFL-1.1"); + licences->addTab(new LicenceLabel(licences, ":licence/CCAI-4.0", Qt::MarkdownText), "CCAI-4.0"); + panels->addTab(licences, "Licences"); + + setCentralWidget(panels); + setMinimumWidth(800); + setMinimumHeight(600); +} + +void +AboutWindow::closeEvent(QCloseEvent *event) noexcept +{ + emit closed(); + event->accept(); +} diff --git a/src/UI/AboutWindow.hh b/src/UI/AboutWindow.hh new file mode 100644 index 0000000000000000000000000000000000000000..7e498a771e104ae7e7d292110bf21380a8ec2129 --- /dev/null +++ b/src/UI/AboutWindow.hh @@ -0,0 +1,28 @@ +#pragma once + +#ifndef __cplusplus +#error "This is a C++ header" +#endif + +#include <QMainWindow> +#include <QTabWidget> +#include <QLabel> + +namespace Vivy +{ +class AboutWindow final : public QMainWindow { + Q_OBJECT + + QTabWidget *panels; + +public: + explicit AboutWindow(QWidget *parent) noexcept; + ~AboutWindow() noexcept = default; + +signals: + void closed(); + +private: + void closeEvent(QCloseEvent *bar) noexcept override; +}; +} diff --git a/src/UI/AbstractDocumentView.cc b/src/UI/AbstractDocumentView.cc index e4b1d3867c0424f2fa5ac98773fd87ea35c49e7c..153948d60fca0546681b3ca445823b50b883a355 100644 --- a/src/UI/AbstractDocumentView.cc +++ b/src/UI/AbstractDocumentView.cc @@ -27,9 +27,9 @@ void AbstractDocumentView::deleteAllContent() noexcept { // Delete all widgets - if (layout() != NULL) { + if (layout() != nullptr) { QLayoutItem *item; - while ((item = layout()->takeAt(0)) != NULL) { + while ((item = layout()->takeAt(0)) != nullptr) { delete item->widget(); delete item; } diff --git a/src/UI/DialogHelp.cc b/src/UI/DialogHelp.cc deleted file mode 100644 index bd0abab31efb949dabe7df5a357e9eedb98b9953..0000000000000000000000000000000000000000 --- a/src/UI/DialogHelp.cc +++ /dev/null @@ -1,54 +0,0 @@ -#include "DialogHelp.hh" -#include "../VivyApplication.hh" - -#include <QWidget> -#include <QLabel> -#include <QDialog> -#include <QPixmap> - -using namespace Vivy; - -// See https://doc.qt.io/qt-5/richtext-html-subset.html for the supported -// rich text subset. -static const char *aboutContentHeader = - "<body>" - "<h1>About Vivy</h1>" - "<p>Vivy is a replacement for Aegisub, writen in Qt5+and with less segfaults - hopefully.</p>" - "<p>The following libraries where used:</p>" - "<ul>" - " <li>Qt5</li>" - " <li>libavutils</li>" - " <li>libavcodec</li>" - " <li>libavformat</li>" - "</ul>"; -static const char *aboutContentFooter = "</body>"; - -DialogHelp::DialogHelp(QWidget *parent) noexcept - : QMessageBox(parent) -{ - setWindowTitle("Vivy - Help"); - setWindowFlags(Qt::Dialog); - setWindowModality(Qt::WindowModal); - QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - setSizePolicy(sizePolicy); - - setTextFormat(Qt::RichText); - setText(getAboutContent()); - setTextInteractionFlags(Qt::NoTextInteraction); - - adjustSize(); -} - -QString -DialogHelp::getAboutContent() const noexcept -{ - QString ret; - ret = aboutContentHeader; - - ret.append("<p>Vivy will handle the following most of the video and audio formats."); - ret.append("The audio formats are: " + Utils::audioFileSuffix.join(", ")); - ret.append("The video formats are: " + Utils::videoFileSuffix.join(", ") + "</p>"); - - ret.append(aboutContentFooter); - return ret; -} diff --git a/src/UI/DialogHelp.hh b/src/UI/DialogHelp.hh deleted file mode 100644 index 0bb5d9e09810ba60765cc462ae16237ccca8814e..0000000000000000000000000000000000000000 --- a/src/UI/DialogHelp.hh +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef VIVY_DIALOGHELP_H -#define VIVY_DIALOGHELP_H - -#ifndef __cplusplus -#error "This is a C++ header" -#endif - -#include <QMessageBox> -#include <QWidget> - -namespace Vivy -{ -class DialogHelp final : public QMessageBox { - Q_OBJECT - -public: - explicit DialogHelp(QWidget *parent = nullptr) noexcept; - ~DialogHelp() noexcept = default; - -private: - QString getAboutContent() const noexcept; -}; - -} - -#endif // VIVY_DIALOGHELP_H diff --git a/src/UI/DocumentViews/AssLinesView.cc b/src/UI/DocumentViews/AssLinesView.cc index a29245be8ae0b58d1a78a0fb285f73df24bd0751..a203ce5a1b433c042a9f5f6d904972dccab4f53a 100644 --- a/src/UI/DocumentViews/AssLinesView.cc +++ b/src/UI/DocumentViews/AssLinesView.cc @@ -1,5 +1,6 @@ #include "AssLinesView.hh" #include "../../VivyApplication.hh" +#include <string_view> #include <QPaintEvent> #include <QHeaderView> @@ -9,13 +10,6 @@ AssLinesView::AssLinesView(QAbstractItemModel *model, QWidget *parent) noexcept : QTableView(parent) , delegate(new Delegate(this)) { - // Force the 9pt font size for now - { - QFont f = font(); - f.setPointSize(9); - setFont(f); - } - setMouseTracking(true); setItemDelegate(delegate); connect(this, &AssLinesView::hoverIndexChanged, delegate, @@ -30,31 +24,7 @@ AssLinesView::AssLinesView(QAbstractItemModel *model, QWidget *parent) noexcept setSelectionBehavior(QAbstractItemView::SelectRows); setShowGrid(false); - // Also set the 9pt font size for the headers - { - QFont f = horizontalHeader()->font(); - f.setPointSize(9); - horizontalHeader()->setFont(f); - verticalHeader()->setFont(f); - } - - static const QString style = "QTableView::item:selected {" - " border-top:1px solid #1394B4;" - " border-bottom:1px solid #1394B4;" - " border-right:1px solid #1394B4;" - " border-left:1px solid #1394B4;" - " background-color: #002B36;" - "}" - "QTableView::item {" - " border: 1px solid #474747;" - "};" - "QTableView::item:last:selected {" - " border-top:1px solid #1394B4;" - " border-bottom:1px solid #1394B4;" - " border-right:1px solid #1394B4;" - " border-left:1px solid #1394B4;" - " background-color: #002B36;" - "}"; + const QString style = QStringLiteral("font-family: \"FiraCode\"; font-size: 8pt;"); setStyleSheet(style); setModel(model); } diff --git a/src/UI/DocumentViews/AudioVisualizer.cc b/src/UI/DocumentViews/AudioVisualizer.cc index fa8d02c1314b267a7ffb04687bb6c56070372e5c..60a6279bde639662a6351f6211bd39504db4d3ac 100644 --- a/src/UI/DocumentViews/AudioVisualizer.cc +++ b/src/UI/DocumentViews/AudioVisualizer.cc @@ -63,7 +63,7 @@ AudioVisualizer::AudioVisualizer(AudioContext::StreamPtr stream, QWidget *parent const float re = chunkData[j * 2 + 1]; const float mag = sqrtf(im * im + re * re); const size_t index = static_cast<size_t>(j * static_cast<ulong>(width) + x); - pixels[index] = (unsigned char)(mag)*MAXPIXVALUE; + pixels[index] = static_cast<unsigned char>((mag)*MAXPIXVALUE); } } diff --git a/src/UI/DocumentViews/TimingScene.hh b/src/UI/DocumentViews/TimingScene.hh index 901de0fa63c48079797dd50018e5ce51cf85e018..fba8958f33ab0587d326ccac30847254ef5d7255 100644 --- a/src/UI/DocumentViews/TimingScene.hh +++ b/src/UI/DocumentViews/TimingScene.hh @@ -38,7 +38,6 @@ private: public: QGraphicsPixmapItem *bg() noexcept; - void mousePressEvent(QGraphicsSceneMouseEvent *event) noexcept override; private: diff --git a/src/UI/DocumentViews/TimingView.cc b/src/UI/DocumentViews/TimingView.cc index 9614cf18ae6008657248d5e89a91c4c84a348d2e..ef12fef40af4cd8a1534d9da2d6a9d4c049263fb 100644 --- a/src/UI/DocumentViews/TimingView.cc +++ b/src/UI/DocumentViews/TimingView.cc @@ -13,8 +13,6 @@ #include <QVBoxLayout> #include <QtGlobal> -#define TO_ADD_TO_IMAGE_HEIGHT 2 /* Used for alignement */ - using namespace Vivy; TimingView::TimingView(QImage img, quint64 soundLength, QWidget *parent) noexcept @@ -22,14 +20,24 @@ TimingView::TimingView(QImage img, quint64 soundLength, QWidget *parent) noexcep { scene = new TimingScene(img, soundLength, this); setFixedHeight(img.height()); - setMaximumHeight(img.height() + horizontalScrollBar()->height() - TO_ADD_TO_IMAGE_HEIGHT); + setMaximumHeight(img.height() + horizontalScrollBar()->height()); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Minimum); QObject::connect(verticalScrollBar(), &QScrollBar::rangeChanged, this, &TimingView::moveScrollBarToBottom); + verticalScrollBar()->setValue(verticalScrollBar()->maximum()); + horizontalScrollBar()->setValue(horizontalScrollBar()->minimum()); setScene(scene); } +void +TimingView::wheelEvent(QWheelEvent *event) noexcept +{ + horizontalScrollBar()->setValue(horizontalScrollBar()->value() + + event->angleDelta().y() * wheelAngleToScrollRatio); +} + void TimingView::mousePressEvent(QMouseEvent *event) noexcept { diff --git a/src/UI/DocumentViews/TimingView.hh b/src/UI/DocumentViews/TimingView.hh index ff5319fe5a19f4892d796b31cf827723adbab7fa..5b0fc0e03971d36de6aa48a578997d330a8d563e 100644 --- a/src/UI/DocumentViews/TimingView.hh +++ b/src/UI/DocumentViews/TimingView.hh @@ -19,6 +19,8 @@ namespace Vivy class TimingView final : public QGraphicsView { Q_OBJECT + static inline constexpr int wheelAngleToScrollRatio = 5; + public: static inline constexpr QColor startColour = QColor(127, 0, 127); static inline constexpr QColor endColour = QColor(0, 127, 0); @@ -26,11 +28,13 @@ public: explicit TimingView(QImage, quint64, QWidget * = nullptr) noexcept; ~TimingView() noexcept = default; + void wheelEvent(QWheelEvent *) noexcept override; + private: TimingScene *scene{ nullptr }; public slots: - void mousePressEvent(QMouseEvent *event) noexcept; + void mousePressEvent(QMouseEvent *event) noexcept override; void moveScrollBarToBottom(int, int) noexcept; }; diff --git a/src/UI/MainWindow.cc b/src/UI/MainWindow.cc index a362c375b6364c810f0530debb0d414d8ab2efde..89ae4396c621fd450ad4de52bf1291a5667e5aec 100644 --- a/src/UI/MainWindow.cc +++ b/src/UI/MainWindow.cc @@ -1,15 +1,19 @@ #include "MainWindow.hh" -#include "DialogHelp.hh" #include "PropertyModel.hh" #include "VivyDocumentView.hh" +#include "AboutWindow.hh" +#include "VivyFileIconProvider.hh" #include "../Lib/Utils.hh" #include "../VivyApplication.hh" +#include <mutex> #include <algorithm> #include <functional> #include <QWindow> #include <optional> #include <QTreeView> +#include <QPushButton> +#include <QDialogButtonBox> #include <QFileInfo> #include <QStandardPaths> #include <QPixmap> @@ -21,32 +25,30 @@ #include <QImage> #include <QToolBar> #include <QTabWidget> +#include <QEventLoop> #define DCL_MENU(menu, name) [[maybe_unused]] QMenu *menu##Menu = menuBar()->addMenu(name); -#define DCL_TOOLBAR(method, name) \ - [[maybe_unused]] QToolBar *method##ToolBar = new QToolBar(tr(name), this); \ - addToolBar(method##ToolBar); - #define DCL_ACTION(method, name, tip, menu) \ [[maybe_unused]] QAction *method##Act = new QAction(tr(name), this); \ method##Act->setStatusTip(tr(tip)); \ menu##Menu->addAction(method##Act); \ connect(method##Act, &QAction::triggered, this, &MainWindow::method); -#define TOOLBAR_ADD_ACTION(toolbar, action) toolbar##ToolBar->addAction(action##Act); - -#define ACTION_ADD_ICON(action, icon) action##Act->setIcon(QIcon::fromTheme(icon)); +#define ACTION_ADD_ICON(action, icon) action##Act->setIcon(QIcon(icon)); #define ACTION_ADD_SHORTCUT(action, shortcut) action##Act->setShortcut(shortcut); using namespace Vivy; -MainWindow::MainWindow(QWidget *parent) noexcept - : QMainWindow(parent) +MainWindow::MainWindow() noexcept + : QMainWindow() { - // Setup the main window other properties - setWindowIcon(QIcon(":/icons/vivy.png")); + setWindowIcon(QIcon(VIVY_ICON_APP)); + setWindowTitle("Vivy"); + setDocumentMode(true); + setDockNestingEnabled(true); + setTabShape(QTabWidget::Rounded); /* Some declarations */ DCL_MENU(file, "&File"); @@ -55,8 +57,6 @@ MainWindow::MainWindow(QWidget *parent) noexcept viewMenu = viewTmpMenu; // Save the view menu DCL_MENU(simulate, "&Simulate"); DCL_MENU(help, "&Help"); - DCL_TOOLBAR(file, "File"); - DCL_TOOLBAR(other, "Other"); DCL_ACTION(newDocument, "&New document", "Create a new document", file); DCL_ACTION(openDocument, "&Open document", "Open a document", file); @@ -69,22 +69,16 @@ MainWindow::MainWindow(QWidget *parent) noexcept DCL_ACTION(openDialogHelp, "&About", "Open the help dialog", help); - ACTION_ADD_ICON(newDocument, "document-new"); - ACTION_ADD_ICON(openDocument, "document-open"); - ACTION_ADD_ICON(saveFile, "document-save"); - ACTION_ADD_ICON(saveFileAs, "document-save-as"); - ACTION_ADD_ICON(openDialogHelp, "help-about"); + ACTION_ADD_ICON(newDocument, VIVY_ICON_NEW); + ACTION_ADD_ICON(openDocument, VIVY_ICON_OPEN); + ACTION_ADD_ICON(saveFile, VIVY_ICON_SAVE); + ACTION_ADD_ICON(saveFileAs, VIVY_ICON_SAVE_AS); + ACTION_ADD_ICON(openDialogHelp, VIVY_ICON_ABOUT); ACTION_ADD_SHORTCUT(newDocument, QKeySequence::New); ACTION_ADD_SHORTCUT(openDocument, QKeySequence::Open); ACTION_ADD_SHORTCUT(saveFile, QKeySequence::Save); - TOOLBAR_ADD_ACTION(file, newDocument); - TOOLBAR_ADD_ACTION(file, openDocument); - TOOLBAR_ADD_ACTION(file, saveFile); - TOOLBAR_ADD_ACTION(file, saveFileAs); - TOOLBAR_ADD_ACTION(other, openDialogHelp); - // Setup the tabs to display the documents documents = new QTabWidget(this); documents->setMovable(true); @@ -144,6 +138,10 @@ MainWindow::MainWindow(QWidget *parent) noexcept // Main window has finished its construction statusBar()->showMessage("QSimulate has started"); + + // Minimal size... + setMinimumHeight(400); + setMinimumWidth(600); } void @@ -163,8 +161,16 @@ MainWindow::openProperties(int index) noexcept void MainWindow::openDialogHelp() noexcept { - std::unique_ptr<DialogHelp> help_holder = std::make_unique<DialogHelp>(this); - help_holder->exec(); + if (aboutWindowMutex.try_lock() && aboutWindow == nullptr) { + aboutWindow = new AboutWindow(this); + QEventLoop loop; + connect(aboutWindow, &AboutWindow::closed, &loop, &QEventLoop::quit); + aboutWindow->show(); + loop.exec(); + delete aboutWindow; + aboutWindow = nullptr; + aboutWindowMutex.unlock(); + } } AbstractDocument * @@ -173,7 +179,7 @@ MainWindow::getCurrentDocument() const noexcept try { return getCurrentDocumentView()->getDocument(); } catch (const std::runtime_error &e) { - qCritical() << "No current view in the main window"; + qCritical() << "No current view in the main window:" << e.what(); return nullptr; } } @@ -228,7 +234,7 @@ MainWindow::newDocument() noexcept try { addTab(new VivyDocumentView(document)); } catch (const std::runtime_error &e) { - qCritical() << "Failed to create a new empty document"; + qCritical() << "Failed to create a new empty document:" << e.what(); vivyApp->documentStore.closeDocument(document->getUuid()); } } @@ -236,7 +242,30 @@ MainWindow::newDocument() noexcept void MainWindow::openDocument() noexcept { - QString filename = QFileDialog::getOpenFileName(this, "Select a file"); + QFileDialog dialog(this, "Select a file"); + bool dialogAccepted = false; + std::unique_ptr<VivyFileIconProvider> iconProvider(new VivyFileIconProvider()); + dialog.setOption(QFileDialog::DontUseNativeDialog); + dialog.setOption(QFileDialog::ReadOnly); + dialog.setIconProvider(iconProvider.get()); + dialog.setFileMode(QFileDialog::ExistingFile); + connect(&dialog, &QFileDialog::accepted, this, + [&dialogAccepted]() noexcept -> void { dialogAccepted = true; }); + dialog.exec(); + + if (!dialogAccepted) { + qDebug() << "No file accepted"; + return; + } + + const QStringList resList = dialog.selectedFiles(); + if (resList.size() != 1) { + qCritical() << "You must select only one file"; + return; + } + + const QString filename = resList.at(0); + if (filename.isEmpty()) { qWarning() << "Found an empty filename, don't open a file"; return; @@ -250,7 +279,7 @@ MainWindow::openDocument() noexcept addTab(new VivyDocumentView(document)); } catch (const std::runtime_error &e) { qCritical() << "Failed to create the document view for" << QFileInfo(filename).baseName() - << "with path" << filename; + << "with path" << filename << "and error:" << e.what(); vivyApp->documentStore.closeDocument(document->getUuid()); } } diff --git a/src/UI/MainWindow.hh b/src/UI/MainWindow.hh index d42f057cb204720379445e45bc78bae675243f07..24f65893017c58c00b52f56077dbadbe87c7cfbd 100644 --- a/src/UI/MainWindow.hh +++ b/src/UI/MainWindow.hh @@ -1,5 +1,4 @@ -#ifndef VIVY_MAINWINDOW_H -#define VIVY_MAINWINDOW_H +#pragma once #ifndef __cplusplus #error "This is a C++ header" @@ -10,9 +9,11 @@ #include "../Lib/Document/VivyDocumentStore.hh" #include "DocumentViews/AudioVisualizer.hh" #include "VivyDocumentView.hh" -#include <QMainWindow> +#include "AboutWindow.hh" #include <QMenu> #include <QFileDialog> +#include <QMutex> +#include <QMainWindow> namespace Vivy { @@ -22,8 +23,11 @@ class MainWindow final : public QMainWindow { QTabWidget *documents{ nullptr }; QMenu *viewMenu{ nullptr }; + QMutex aboutWindowMutex{ QMutex::NonRecursive }; + AboutWindow *aboutWindow{ nullptr }; + public: - explicit MainWindow(QWidget *parent = nullptr) noexcept; + explicit MainWindow() noexcept; ~MainWindow() noexcept = default; AbstractDocument *getCurrentDocument() const noexcept; @@ -89,5 +93,3 @@ private slots: }; } - -#endif // VIVY_MAINWINDOW_H diff --git a/src/UI/VivyDocumentView.cc b/src/UI/VivyDocumentView.cc index d8af3d93b9cb0e32374f1f788c95411748153106..bd0a0416bdadb92a3e6d4ece9142394ad5a71b18 100644 --- a/src/UI/VivyDocumentView.cc +++ b/src/UI/VivyDocumentView.cc @@ -116,10 +116,11 @@ VivyDocumentView::loadAudioView() noexcept return; } - visualizer->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding); + visualizer->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Minimum); visualizer->setWidget(visualizerInner); visualizer->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::TopDockWidgetArea); visualizer->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable); + visualizer->layout()->setAlignment(visualizerInner, Qt::AlignTop); addDockWidget(Qt::LeftDockWidgetArea, visualizer, Qt::Horizontal); } @@ -145,7 +146,7 @@ VivyDocumentView::closeDocument() noexcept QIcon VivyDocumentView::getDocumentTabIcon() const noexcept { - return QIcon(":/icons/vivy.png"); + return QIcon(VIVY_ICON_APP); } void diff --git a/src/UI/VivyFileIconProvider.cc b/src/UI/VivyFileIconProvider.cc new file mode 100644 index 0000000000000000000000000000000000000000..0993d18f5af335c1f1483872e8ddeaddaec942ea --- /dev/null +++ b/src/UI/VivyFileIconProvider.cc @@ -0,0 +1,18 @@ +#include "VivyFileIconProvider.hh" +#include "../VivyApplication.hh" + +using namespace Vivy; + +QIcon +VivyFileIconProvider::icon(const QFileInfo &info) const noexcept +{ + if (const auto name = info.fileName(); name.isEmpty() || name.isNull()) + return defaultFile; + // TODO: For file detection use functions in Utils.hh + else if (info.isDir()) + return defaultFolder; + else if (const auto suffix = info.suffix(); suffix == "vivy" || suffix == "ass") + return vivyFile; + else + return defaultFile; +} diff --git a/src/UI/VivyFileIconProvider.hh b/src/UI/VivyFileIconProvider.hh new file mode 100644 index 0000000000000000000000000000000000000000..c220d5b25e6996196c9e19ad5aaad41f812be3f0 --- /dev/null +++ b/src/UI/VivyFileIconProvider.hh @@ -0,0 +1,27 @@ +#pragma once + +#ifndef __cplusplus +#error "This is a C++ header" +#endif + +#include "../Lib/Utils.hh" +#include "../VivyApplication.hh" +#include <QtGlobal> +#include <QFileIconProvider> +#include <QFileInfo> +#include <QIcon> + +namespace Vivy +{ +class VivyFileIconProvider : public QFileIconProvider { +public: + VivyFileIconProvider() noexcept = default; + + QIcon icon(const QFileInfo &) const noexcept override; + +private: + QIcon defaultFile{ VIVY_ICON_FILE }; + QIcon vivyFile{ VIVY_ICON_APP }; + QIcon defaultFolder{ VIVY_ICON_FOLDER }; +}; +} diff --git a/src/VivyApplication.cc b/src/VivyApplication.cc index 0b08c8017def22582ac61c7f35115599721d9835..db7350047f6b4ae9e1e9e8b6050e71d873eac85e 100644 --- a/src/VivyApplication.cc +++ b/src/VivyApplication.cc @@ -1,9 +1,13 @@ #include "VivyApplication.hh" #include "UI/MainWindow.hh" +#include <QtGlobal> +#include <QIcon> +#include <QFontDatabase> + using namespace Vivy; -VivyApplication::VivyApplication(int argc, char **argv) +VivyApplication::VivyApplication(int &argc, char **argv) : QApplication(argc, argv) { } @@ -11,6 +15,25 @@ VivyApplication::VivyApplication(int argc, char **argv) int VivyApplication::exec() noexcept { + // Add fonts + fontIdMonospace = QFontDatabase::addApplicationFont(":/fonts/FiraCode-Regular.ttf"); + fontIdRegular = QFontDatabase::addApplicationFont(":/fonts/NotoSans-Regular.ttf"); + fontIdItalic = QFontDatabase::addApplicationFont(":/fonts/NotoSans-Italic.ttf"); + fontIdBold = QFontDatabase::addApplicationFont(":/fonts/NotoSans-Bold.ttf"); + fontIdBoldItalic = QFontDatabase::addApplicationFont(":/fonts/NotoSans-BoldItalic.ttf"); + + // Setup some things + setAttribute(Qt::AA_DontShowIconsInMenus, false); + setAttribute(Qt::AA_DontShowShortcutsInContextMenus, false); + setFont(getApplicationFont(Font::Default)); + QFile stylesheet(":qdarkstyle/dark/style.qss"); + if (!stylesheet.exists()) { + qFatal("Missing stylesheet"); + } + stylesheet.open(QFile::ReadOnly | QFile::Text); + QTextStream stylesheetStream(&stylesheet); + setStyleSheet(stylesheetStream.readAll()); + // Show the main window MainWindow mainWindow; mainWindow.show(); @@ -18,3 +41,27 @@ VivyApplication::exec() noexcept // Main loop return QApplication::exec(); } + +QFont +VivyApplication::getApplicationFont(Font id) const noexcept +{ + switch (id) { + case Font::Monospace: + return QFont(QFontDatabase::applicationFontFamilies(fontIdMonospace).at(0)); + + case Font::DefaultItalic: + return QFont(QFontDatabase::applicationFontFamilies(fontIdItalic).at(0)); + + case Font::DefaultBoldItalic: + return QFont(QFontDatabase::applicationFontFamilies(fontIdBoldItalic).at(0)); + + case Font::DefaultBold: + return QFont(QFontDatabase::applicationFontFamilies(fontIdBold).at(0)); + + case Font::Default: + return QFont(QFontDatabase::applicationFontFamilies(fontIdRegular).at(0)); + } + + // Let the program crash + qFatal("UNREACHABLE"); +} diff --git a/src/VivyApplication.hh b/src/VivyApplication.hh index 579f9b78c273d7ba936d3e98b0960d702f529c66..5cc29c4040da1e7c14c011f30d5ee3d0ece4e97d 100644 --- a/src/VivyApplication.hh +++ b/src/VivyApplication.hh @@ -1,5 +1,4 @@ -#ifndef VIVY_APPLICATION_H -#define VIVY_APPLICATION_H +#pragma once #ifndef __cplusplus #error "This is a C++ header" @@ -7,10 +6,26 @@ #define vivyApp static_cast<VivyApplication *>(QApplication::instance()) +// Only support dark theme for now +#define VIVY_ICON_APP ":icons/vivy.png" +#define VIVY_ICON_OPEN ":icons/dark/document-open.svg" +#define VIVY_ICON_NEW ":icons/dark/document-new.svg" +#define VIVY_ICON_SAVE ":icons/dark/document-save.svg" +#define VIVY_ICON_SAVE_AS ":icons/dark/document-save-as.svg" +#define VIVY_ICON_ABOUT ":icons/dark/help-about.svg" +#define VIVY_ICON_FILE ":icons/dark/text-x-generic.svg" +#define VIVY_ICON_FOLDER ":icons/dark/folder.svg" + #include <QApplication> #include <QPixmap> +#include <QFont> + +// Detect MacOS +#if defined(Q_OS_DARWIN) || defined(Q_OS_MACOS) +#define VIVY_MACOS +#endif + #include "Lib/Document/VivyDocumentStore.hh" -#include <memory> namespace Vivy { @@ -20,14 +35,28 @@ class VivyApplication : public QApplication { public: VivyDocumentStore documentStore{}; + enum class Font { + Monospace, + Default, + DefaultItalic, + DefaultBold, + DefaultBoldItalic, + }; + private: + int fontIdMonospace; + int fontIdRegular; + int fontIdItalic; + int fontIdBold; + int fontIdBoldItalic; + public: - VivyApplication(int argc, char **argv); + VivyApplication(int &argc, char **argv); ~VivyApplication() = default; int exec() noexcept; + + QFont getApplicationFont(Font) const noexcept; }; } - -#endif // VIVY_APPLICATION_H diff --git a/utils/rsc/.gitignore b/utils/rsc/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..1944fd61e7c53bcc19e6f3eb94cc800508944a25 --- /dev/null +++ b/utils/rsc/.gitignore @@ -0,0 +1 @@ +*.tmp diff --git a/utils/rsc/VivyRessources.qrc b/utils/rsc/VivyRessources.qrc index e2537972622ee7ef55f90dc00ebb404009c0d001..0f6f69913c557afae767cb9ddda9c2726912ce01 100644 --- a/utils/rsc/VivyRessources.qrc +++ b/utils/rsc/VivyRessources.qrc @@ -1,5 +1,466 @@ <!DOCTYPE RCC><RCC version="1.0"> <qresource> <file>icons/vivy.png</file> + + <!-- Fonts, FiraCode is OFL-1.1, NotoSans is APACHE-2.0 --> + <file>fonts/FiraCode-Regular.ttf</file> + <file>fonts/NotoSans-Bold.ttf</file> + <file>fonts/NotoSans-Italic.ttf</file> + <file>fonts/NotoSans-Regular.ttf</file> + <file>fonts/NotoSans-BoldItalic.ttf</file> + + <!-- Licences --> + <file>licence/LGPL-V2.0</file> + <file>licence/LGPL-V2.1</file> + <file>licence/LGPL-V3</file> + <file>licence/OFL-1.1</file> + <file>licence/MIT</file> + <file>licence/CCAI-4.0</file> +</qresource> + +<!-- Breeze icons, LGPL-3.0 Licence --> +<qresource prefix="icons/dark"> + <file alias="document-new.svg">icons/breeze-dark/document-new.svg</file> + <file alias="document-open.svg">icons/breeze-dark/document-open.svg</file> + <file alias="document-save.svg">icons/breeze-dark/document-save.svg</file> + <file alias="document-save-as.svg">icons/breeze-dark/document-save-as.svg</file> + <file alias="folder.svg">icons/breeze-dark/folder.svg</file> + <file alias="text-x-generic.svg">icons/breeze-dark/text-x-generic.svg</file> + <file alias="help-about.svg">icons/breeze-dark/help-about.svg</file> +</qresource> +<qresource prefix="icons/light"> + <file alias="document-new.svg">icons/breeze-light/document-new.svg</file> + <file alias="document-open.svg">icons/breeze-light/document-open.svg</file> + <file alias="document-save.svg">icons/breeze-light/document-save.svg</file> + <file alias="document-save-as.svg">icons/breeze-light/document-save-as.svg</file> + <file alias="folder.svg">icons/breeze-light/folder.svg</file> + <file alias="text-x-generic.svg">icons/breeze-light/text-x-generic.svg</file> + <file alias="help-about.svg">icons/breeze-light/help-about.svg</file> +</qresource> + +<!-- QDarkStyle style sheet, MIT Licence --> +<qresource prefix="qdarkstyle/dark"> <file alias="style.qss">qdarkstyle_dark.qss</file> </qresource> +<qresource prefix="qdarkstyle/light"> <file alias="style.qss">qdarkstyle_light.qss</file> </qresource> + +<!-- QDarkStyle icon theme, MIT + CCAI-4.0 Licence --> +<qresource prefix="qss_icons/dark"> + <file>rc_dark/arrow_down.png</file> + <file>rc_dark/arrow_down@2x.png</file> + <file>rc_dark/arrow_down_disabled.png</file> + <file>rc_dark/arrow_down_disabled@2x.png</file> + <file>rc_dark/arrow_down_focus.png</file> + <file>rc_dark/arrow_down_focus@2x.png</file> + <file>rc_dark/arrow_down_pressed.png</file> + <file>rc_dark/arrow_down_pressed@2x.png</file> + <file>rc_dark/arrow_left.png</file> + <file>rc_dark/arrow_left@2x.png</file> + <file>rc_dark/arrow_left_disabled.png</file> + <file>rc_dark/arrow_left_disabled@2x.png</file> + <file>rc_dark/arrow_left_focus.png</file> + <file>rc_dark/arrow_left_focus@2x.png</file> + <file>rc_dark/arrow_left_pressed.png</file> + <file>rc_dark/arrow_left_pressed@2x.png</file> + <file>rc_dark/arrow_right.png</file> + <file>rc_dark/arrow_right@2x.png</file> + <file>rc_dark/arrow_right_disabled.png</file> + <file>rc_dark/arrow_right_disabled@2x.png</file> + <file>rc_dark/arrow_right_focus.png</file> + <file>rc_dark/arrow_right_focus@2x.png</file> + <file>rc_dark/arrow_right_pressed.png</file> + <file>rc_dark/arrow_right_pressed@2x.png</file> + <file>rc_dark/arrow_up.png</file> + <file>rc_dark/arrow_up@2x.png</file> + <file>rc_dark/arrow_up_disabled.png</file> + <file>rc_dark/arrow_up_disabled@2x.png</file> + <file>rc_dark/arrow_up_focus.png</file> + <file>rc_dark/arrow_up_focus@2x.png</file> + <file>rc_dark/arrow_up_pressed.png</file> + <file>rc_dark/arrow_up_pressed@2x.png</file> + <file>rc_dark/base_icon.png</file> + <file>rc_dark/base_icon@2x.png</file> + <file>rc_dark/base_icon_disabled.png</file> + <file>rc_dark/base_icon_disabled@2x.png</file> + <file>rc_dark/base_icon_focus.png</file> + <file>rc_dark/base_icon_focus@2x.png</file> + <file>rc_dark/base_icon_pressed.png</file> + <file>rc_dark/base_icon_pressed@2x.png</file> + <file>rc_dark/branch_closed.png</file> + <file>rc_dark/branch_closed@2x.png</file> + <file>rc_dark/branch_closed_disabled.png</file> + <file>rc_dark/branch_closed_disabled@2x.png</file> + <file>rc_dark/branch_closed_focus.png</file> + <file>rc_dark/branch_closed_focus@2x.png</file> + <file>rc_dark/branch_closed_pressed.png</file> + <file>rc_dark/branch_closed_pressed@2x.png</file> + <file>rc_dark/branch_end.png</file> + <file>rc_dark/branch_end@2x.png</file> + <file>rc_dark/branch_end_disabled.png</file> + <file>rc_dark/branch_end_disabled@2x.png</file> + <file>rc_dark/branch_end_focus.png</file> + <file>rc_dark/branch_end_focus@2x.png</file> + <file>rc_dark/branch_end_pressed.png</file> + <file>rc_dark/branch_end_pressed@2x.png</file> + <file>rc_dark/branch_line.png</file> + <file>rc_dark/branch_line@2x.png</file> + <file>rc_dark/branch_line_disabled.png</file> + <file>rc_dark/branch_line_disabled@2x.png</file> + <file>rc_dark/branch_line_focus.png</file> + <file>rc_dark/branch_line_focus@2x.png</file> + <file>rc_dark/branch_line_pressed.png</file> + <file>rc_dark/branch_line_pressed@2x.png</file> + <file>rc_dark/branch_more.png</file> + <file>rc_dark/branch_more@2x.png</file> + <file>rc_dark/branch_more_disabled.png</file> + <file>rc_dark/branch_more_disabled@2x.png</file> + <file>rc_dark/branch_more_focus.png</file> + <file>rc_dark/branch_more_focus@2x.png</file> + <file>rc_dark/branch_more_pressed.png</file> + <file>rc_dark/branch_more_pressed@2x.png</file> + <file>rc_dark/branch_open.png</file> + <file>rc_dark/branch_open@2x.png</file> + <file>rc_dark/branch_open_disabled.png</file> + <file>rc_dark/branch_open_disabled@2x.png</file> + <file>rc_dark/branch_open_focus.png</file> + <file>rc_dark/branch_open_focus@2x.png</file> + <file>rc_dark/branch_open_pressed.png</file> + <file>rc_dark/branch_open_pressed@2x.png</file> + <file>rc_dark/checkbox_checked.png</file> + <file>rc_dark/checkbox_checked@2x.png</file> + <file>rc_dark/checkbox_checked_disabled.png</file> + <file>rc_dark/checkbox_checked_disabled@2x.png</file> + <file>rc_dark/checkbox_checked_focus.png</file> + <file>rc_dark/checkbox_checked_focus@2x.png</file> + <file>rc_dark/checkbox_checked_pressed.png</file> + <file>rc_dark/checkbox_checked_pressed@2x.png</file> + <file>rc_dark/checkbox_indeterminate.png</file> + <file>rc_dark/checkbox_indeterminate@2x.png</file> + <file>rc_dark/checkbox_indeterminate_disabled.png</file> + <file>rc_dark/checkbox_indeterminate_disabled@2x.png</file> + <file>rc_dark/checkbox_indeterminate_focus.png</file> + <file>rc_dark/checkbox_indeterminate_focus@2x.png</file> + <file>rc_dark/checkbox_indeterminate_pressed.png</file> + <file>rc_dark/checkbox_indeterminate_pressed@2x.png</file> + <file>rc_dark/checkbox_unchecked.png</file> + <file>rc_dark/checkbox_unchecked@2x.png</file> + <file>rc_dark/checkbox_unchecked_disabled.png</file> + <file>rc_dark/checkbox_unchecked_disabled@2x.png</file> + <file>rc_dark/checkbox_unchecked_focus.png</file> + <file>rc_dark/checkbox_unchecked_focus@2x.png</file> + <file>rc_dark/checkbox_unchecked_pressed.png</file> + <file>rc_dark/checkbox_unchecked_pressed@2x.png</file> + <file>rc_dark/line_horizontal.png</file> + <file>rc_dark/line_horizontal@2x.png</file> + <file>rc_dark/line_horizontal_disabled.png</file> + <file>rc_dark/line_horizontal_disabled@2x.png</file> + <file>rc_dark/line_horizontal_focus.png</file> + <file>rc_dark/line_horizontal_focus@2x.png</file> + <file>rc_dark/line_horizontal_pressed.png</file> + <file>rc_dark/line_horizontal_pressed@2x.png</file> + <file>rc_dark/line_vertical.png</file> + <file>rc_dark/line_vertical@2x.png</file> + <file>rc_dark/line_vertical_disabled.png</file> + <file>rc_dark/line_vertical_disabled@2x.png</file> + <file>rc_dark/line_vertical_focus.png</file> + <file>rc_dark/line_vertical_focus@2x.png</file> + <file>rc_dark/line_vertical_pressed.png</file> + <file>rc_dark/line_vertical_pressed@2x.png</file> + <file>rc_dark/radio_checked.png</file> + <file>rc_dark/radio_checked@2x.png</file> + <file>rc_dark/radio_checked_disabled.png</file> + <file>rc_dark/radio_checked_disabled@2x.png</file> + <file>rc_dark/radio_checked_focus.png</file> + <file>rc_dark/radio_checked_focus@2x.png</file> + <file>rc_dark/radio_checked_pressed.png</file> + <file>rc_dark/radio_checked_pressed@2x.png</file> + <file>rc_dark/radio_unchecked.png</file> + <file>rc_dark/radio_unchecked@2x.png</file> + <file>rc_dark/radio_unchecked_disabled.png</file> + <file>rc_dark/radio_unchecked_disabled@2x.png</file> + <file>rc_dark/radio_unchecked_focus.png</file> + <file>rc_dark/radio_unchecked_focus@2x.png</file> + <file>rc_dark/radio_unchecked_pressed.png</file> + <file>rc_dark/radio_unchecked_pressed@2x.png</file> + <file>rc_dark/toolbar_move_horizontal.png</file> + <file>rc_dark/toolbar_move_horizontal@2x.png</file> + <file>rc_dark/toolbar_move_horizontal_disabled.png</file> + <file>rc_dark/toolbar_move_horizontal_disabled@2x.png</file> + <file>rc_dark/toolbar_move_horizontal_focus.png</file> + <file>rc_dark/toolbar_move_horizontal_focus@2x.png</file> + <file>rc_dark/toolbar_move_horizontal_pressed.png</file> + <file>rc_dark/toolbar_move_horizontal_pressed@2x.png</file> + <file>rc_dark/toolbar_move_vertical.png</file> + <file>rc_dark/toolbar_move_vertical@2x.png</file> + <file>rc_dark/toolbar_move_vertical_disabled.png</file> + <file>rc_dark/toolbar_move_vertical_disabled@2x.png</file> + <file>rc_dark/toolbar_move_vertical_focus.png</file> + <file>rc_dark/toolbar_move_vertical_focus@2x.png</file> + <file>rc_dark/toolbar_move_vertical_pressed.png</file> + <file>rc_dark/toolbar_move_vertical_pressed@2x.png</file> + <file>rc_dark/toolbar_separator_horizontal.png</file> + <file>rc_dark/toolbar_separator_horizontal@2x.png</file> + <file>rc_dark/toolbar_separator_horizontal_disabled.png</file> + <file>rc_dark/toolbar_separator_horizontal_disabled@2x.png</file> + <file>rc_dark/toolbar_separator_horizontal_focus.png</file> + <file>rc_dark/toolbar_separator_horizontal_focus@2x.png</file> + <file>rc_dark/toolbar_separator_horizontal_pressed.png</file> + <file>rc_dark/toolbar_separator_horizontal_pressed@2x.png</file> + <file>rc_dark/toolbar_separator_vertical.png</file> + <file>rc_dark/toolbar_separator_vertical@2x.png</file> + <file>rc_dark/toolbar_separator_vertical_disabled.png</file> + <file>rc_dark/toolbar_separator_vertical_disabled@2x.png</file> + <file>rc_dark/toolbar_separator_vertical_focus.png</file> + <file>rc_dark/toolbar_separator_vertical_focus@2x.png</file> + <file>rc_dark/toolbar_separator_vertical_pressed.png</file> + <file>rc_dark/toolbar_separator_vertical_pressed@2x.png</file> + <file>rc_dark/transparent.png</file> + <file>rc_dark/transparent@2x.png</file> + <file>rc_dark/transparent_disabled.png</file> + <file>rc_dark/transparent_disabled@2x.png</file> + <file>rc_dark/transparent_focus.png</file> + <file>rc_dark/transparent_focus@2x.png</file> + <file>rc_dark/transparent_pressed.png</file> + <file>rc_dark/transparent_pressed@2x.png</file> + <file>rc_dark/window_close.png</file> + <file>rc_dark/window_close@2x.png</file> + <file>rc_dark/window_close_disabled.png</file> + <file>rc_dark/window_close_disabled@2x.png</file> + <file>rc_dark/window_close_focus.png</file> + <file>rc_dark/window_close_focus@2x.png</file> + <file>rc_dark/window_close_pressed.png</file> + <file>rc_dark/window_close_pressed@2x.png</file> + <file>rc_dark/window_grip.png</file> + <file>rc_dark/window_grip@2x.png</file> + <file>rc_dark/window_grip_disabled.png</file> + <file>rc_dark/window_grip_disabled@2x.png</file> + <file>rc_dark/window_grip_focus.png</file> + <file>rc_dark/window_grip_focus@2x.png</file> + <file>rc_dark/window_grip_pressed.png</file> + <file>rc_dark/window_grip_pressed@2x.png</file> + <file>rc_dark/window_minimize.png</file> + <file>rc_dark/window_minimize@2x.png</file> + <file>rc_dark/window_minimize_disabled.png</file> + <file>rc_dark/window_minimize_disabled@2x.png</file> + <file>rc_dark/window_minimize_focus.png</file> + <file>rc_dark/window_minimize_focus@2x.png</file> + <file>rc_dark/window_minimize_pressed.png</file> + <file>rc_dark/window_minimize_pressed@2x.png</file> + <file>rc_dark/window_undock.png</file> + <file>rc_dark/window_undock@2x.png</file> + <file>rc_dark/window_undock_disabled.png</file> + <file>rc_dark/window_undock_disabled@2x.png</file> + <file>rc_dark/window_undock_focus.png</file> + <file>rc_dark/window_undock_focus@2x.png</file> + <file>rc_dark/window_undock_pressed.png</file> + <file>rc_dark/window_undock_pressed@2x.png</file> +</qresource> +<qresource prefix="qss_icons/light"> + <file>rc_light/arrow_down.png</file> + <file>rc_light/arrow_down@2x.png</file> + <file>rc_light/arrow_down_disabled.png</file> + <file>rc_light/arrow_down_disabled@2x.png</file> + <file>rc_light/arrow_down_focus.png</file> + <file>rc_light/arrow_down_focus@2x.png</file> + <file>rc_light/arrow_down_pressed.png</file> + <file>rc_light/arrow_down_pressed@2x.png</file> + <file>rc_light/arrow_left.png</file> + <file>rc_light/arrow_left@2x.png</file> + <file>rc_light/arrow_left_disabled.png</file> + <file>rc_light/arrow_left_disabled@2x.png</file> + <file>rc_light/arrow_left_focus.png</file> + <file>rc_light/arrow_left_focus@2x.png</file> + <file>rc_light/arrow_left_pressed.png</file> + <file>rc_light/arrow_left_pressed@2x.png</file> + <file>rc_light/arrow_right.png</file> + <file>rc_light/arrow_right@2x.png</file> + <file>rc_light/arrow_right_disabled.png</file> + <file>rc_light/arrow_right_disabled@2x.png</file> + <file>rc_light/arrow_right_focus.png</file> + <file>rc_light/arrow_right_focus@2x.png</file> + <file>rc_light/arrow_right_pressed.png</file> + <file>rc_light/arrow_right_pressed@2x.png</file> + <file>rc_light/arrow_up.png</file> + <file>rc_light/arrow_up@2x.png</file> + <file>rc_light/arrow_up_disabled.png</file> + <file>rc_light/arrow_up_disabled@2x.png</file> + <file>rc_light/arrow_up_focus.png</file> + <file>rc_light/arrow_up_focus@2x.png</file> + <file>rc_light/arrow_up_pressed.png</file> + <file>rc_light/arrow_up_pressed@2x.png</file> + <file>rc_light/base_icon.png</file> + <file>rc_light/base_icon@2x.png</file> + <file>rc_light/base_icon_disabled.png</file> + <file>rc_light/base_icon_disabled@2x.png</file> + <file>rc_light/base_icon_focus.png</file> + <file>rc_light/base_icon_focus@2x.png</file> + <file>rc_light/base_icon_pressed.png</file> + <file>rc_light/base_icon_pressed@2x.png</file> + <file>rc_light/branch_closed.png</file> + <file>rc_light/branch_closed@2x.png</file> + <file>rc_light/branch_closed_disabled.png</file> + <file>rc_light/branch_closed_disabled@2x.png</file> + <file>rc_light/branch_closed_focus.png</file> + <file>rc_light/branch_closed_focus@2x.png</file> + <file>rc_light/branch_closed_pressed.png</file> + <file>rc_light/branch_closed_pressed@2x.png</file> + <file>rc_light/branch_end.png</file> + <file>rc_light/branch_end@2x.png</file> + <file>rc_light/branch_end_disabled.png</file> + <file>rc_light/branch_end_disabled@2x.png</file> + <file>rc_light/branch_end_focus.png</file> + <file>rc_light/branch_end_focus@2x.png</file> + <file>rc_light/branch_end_pressed.png</file> + <file>rc_light/branch_end_pressed@2x.png</file> + <file>rc_light/branch_line.png</file> + <file>rc_light/branch_line@2x.png</file> + <file>rc_light/branch_line_disabled.png</file> + <file>rc_light/branch_line_disabled@2x.png</file> + <file>rc_light/branch_line_focus.png</file> + <file>rc_light/branch_line_focus@2x.png</file> + <file>rc_light/branch_line_pressed.png</file> + <file>rc_light/branch_line_pressed@2x.png</file> + <file>rc_light/branch_more.png</file> + <file>rc_light/branch_more@2x.png</file> + <file>rc_light/branch_more_disabled.png</file> + <file>rc_light/branch_more_disabled@2x.png</file> + <file>rc_light/branch_more_focus.png</file> + <file>rc_light/branch_more_focus@2x.png</file> + <file>rc_light/branch_more_pressed.png</file> + <file>rc_light/branch_more_pressed@2x.png</file> + <file>rc_light/branch_open.png</file> + <file>rc_light/branch_open@2x.png</file> + <file>rc_light/branch_open_disabled.png</file> + <file>rc_light/branch_open_disabled@2x.png</file> + <file>rc_light/branch_open_focus.png</file> + <file>rc_light/branch_open_focus@2x.png</file> + <file>rc_light/branch_open_pressed.png</file> + <file>rc_light/branch_open_pressed@2x.png</file> + <file>rc_light/checkbox_checked.png</file> + <file>rc_light/checkbox_checked@2x.png</file> + <file>rc_light/checkbox_checked_disabled.png</file> + <file>rc_light/checkbox_checked_disabled@2x.png</file> + <file>rc_light/checkbox_checked_focus.png</file> + <file>rc_light/checkbox_checked_focus@2x.png</file> + <file>rc_light/checkbox_checked_pressed.png</file> + <file>rc_light/checkbox_checked_pressed@2x.png</file> + <file>rc_light/checkbox_indeterminate.png</file> + <file>rc_light/checkbox_indeterminate@2x.png</file> + <file>rc_light/checkbox_indeterminate_disabled.png</file> + <file>rc_light/checkbox_indeterminate_disabled@2x.png</file> + <file>rc_light/checkbox_indeterminate_focus.png</file> + <file>rc_light/checkbox_indeterminate_focus@2x.png</file> + <file>rc_light/checkbox_indeterminate_pressed.png</file> + <file>rc_light/checkbox_indeterminate_pressed@2x.png</file> + <file>rc_light/checkbox_unchecked.png</file> + <file>rc_light/checkbox_unchecked@2x.png</file> + <file>rc_light/checkbox_unchecked_disabled.png</file> + <file>rc_light/checkbox_unchecked_disabled@2x.png</file> + <file>rc_light/checkbox_unchecked_focus.png</file> + <file>rc_light/checkbox_unchecked_focus@2x.png</file> + <file>rc_light/checkbox_unchecked_pressed.png</file> + <file>rc_light/checkbox_unchecked_pressed@2x.png</file> + <file>rc_light/line_horizontal.png</file> + <file>rc_light/line_horizontal@2x.png</file> + <file>rc_light/line_horizontal_disabled.png</file> + <file>rc_light/line_horizontal_disabled@2x.png</file> + <file>rc_light/line_horizontal_focus.png</file> + <file>rc_light/line_horizontal_focus@2x.png</file> + <file>rc_light/line_horizontal_pressed.png</file> + <file>rc_light/line_horizontal_pressed@2x.png</file> + <file>rc_light/line_vertical.png</file> + <file>rc_light/line_vertical@2x.png</file> + <file>rc_light/line_vertical_disabled.png</file> + <file>rc_light/line_vertical_disabled@2x.png</file> + <file>rc_light/line_vertical_focus.png</file> + <file>rc_light/line_vertical_focus@2x.png</file> + <file>rc_light/line_vertical_pressed.png</file> + <file>rc_light/line_vertical_pressed@2x.png</file> + <file>rc_light/radio_checked.png</file> + <file>rc_light/radio_checked@2x.png</file> + <file>rc_light/radio_checked_disabled.png</file> + <file>rc_light/radio_checked_disabled@2x.png</file> + <file>rc_light/radio_checked_focus.png</file> + <file>rc_light/radio_checked_focus@2x.png</file> + <file>rc_light/radio_checked_pressed.png</file> + <file>rc_light/radio_checked_pressed@2x.png</file> + <file>rc_light/radio_unchecked.png</file> + <file>rc_light/radio_unchecked@2x.png</file> + <file>rc_light/radio_unchecked_disabled.png</file> + <file>rc_light/radio_unchecked_disabled@2x.png</file> + <file>rc_light/radio_unchecked_focus.png</file> + <file>rc_light/radio_unchecked_focus@2x.png</file> + <file>rc_light/radio_unchecked_pressed.png</file> + <file>rc_light/radio_unchecked_pressed@2x.png</file> + <file>rc_light/toolbar_move_horizontal.png</file> + <file>rc_light/toolbar_move_horizontal@2x.png</file> + <file>rc_light/toolbar_move_horizontal_disabled.png</file> + <file>rc_light/toolbar_move_horizontal_disabled@2x.png</file> + <file>rc_light/toolbar_move_horizontal_focus.png</file> + <file>rc_light/toolbar_move_horizontal_focus@2x.png</file> + <file>rc_light/toolbar_move_horizontal_pressed.png</file> + <file>rc_light/toolbar_move_horizontal_pressed@2x.png</file> + <file>rc_light/toolbar_move_vertical.png</file> + <file>rc_light/toolbar_move_vertical@2x.png</file> + <file>rc_light/toolbar_move_vertical_disabled.png</file> + <file>rc_light/toolbar_move_vertical_disabled@2x.png</file> + <file>rc_light/toolbar_move_vertical_focus.png</file> + <file>rc_light/toolbar_move_vertical_focus@2x.png</file> + <file>rc_light/toolbar_move_vertical_pressed.png</file> + <file>rc_light/toolbar_move_vertical_pressed@2x.png</file> + <file>rc_light/toolbar_separator_horizontal.png</file> + <file>rc_light/toolbar_separator_horizontal@2x.png</file> + <file>rc_light/toolbar_separator_horizontal_disabled.png</file> + <file>rc_light/toolbar_separator_horizontal_disabled@2x.png</file> + <file>rc_light/toolbar_separator_horizontal_focus.png</file> + <file>rc_light/toolbar_separator_horizontal_focus@2x.png</file> + <file>rc_light/toolbar_separator_horizontal_pressed.png</file> + <file>rc_light/toolbar_separator_horizontal_pressed@2x.png</file> + <file>rc_light/toolbar_separator_vertical.png</file> + <file>rc_light/toolbar_separator_vertical@2x.png</file> + <file>rc_light/toolbar_separator_vertical_disabled.png</file> + <file>rc_light/toolbar_separator_vertical_disabled@2x.png</file> + <file>rc_light/toolbar_separator_vertical_focus.png</file> + <file>rc_light/toolbar_separator_vertical_focus@2x.png</file> + <file>rc_light/toolbar_separator_vertical_pressed.png</file> + <file>rc_light/toolbar_separator_vertical_pressed@2x.png</file> + <file>rc_light/transparent.png</file> + <file>rc_light/transparent@2x.png</file> + <file>rc_light/transparent_disabled.png</file> + <file>rc_light/transparent_disabled@2x.png</file> + <file>rc_light/transparent_focus.png</file> + <file>rc_light/transparent_focus@2x.png</file> + <file>rc_light/transparent_pressed.png</file> + <file>rc_light/transparent_pressed@2x.png</file> + <file>rc_light/window_close.png</file> + <file>rc_light/window_close@2x.png</file> + <file>rc_light/window_close_disabled.png</file> + <file>rc_light/window_close_disabled@2x.png</file> + <file>rc_light/window_close_focus.png</file> + <file>rc_light/window_close_focus@2x.png</file> + <file>rc_light/window_close_pressed.png</file> + <file>rc_light/window_close_pressed@2x.png</file> + <file>rc_light/window_grip.png</file> + <file>rc_light/window_grip@2x.png</file> + <file>rc_light/window_grip_disabled.png</file> + <file>rc_light/window_grip_disabled@2x.png</file> + <file>rc_light/window_grip_focus.png</file> + <file>rc_light/window_grip_focus@2x.png</file> + <file>rc_light/window_grip_pressed.png</file> + <file>rc_light/window_grip_pressed@2x.png</file> + <file>rc_light/window_minimize.png</file> + <file>rc_light/window_minimize@2x.png</file> + <file>rc_light/window_minimize_disabled.png</file> + <file>rc_light/window_minimize_disabled@2x.png</file> + <file>rc_light/window_minimize_focus.png</file> + <file>rc_light/window_minimize_focus@2x.png</file> + <file>rc_light/window_minimize_pressed.png</file> + <file>rc_light/window_minimize_pressed@2x.png</file> + <file>rc_light/window_undock.png</file> + <file>rc_light/window_undock@2x.png</file> + <file>rc_light/window_undock_disabled.png</file> + <file>rc_light/window_undock_disabled@2x.png</file> + <file>rc_light/window_undock_focus.png</file> + <file>rc_light/window_undock_focus@2x.png</file> + <file>rc_light/window_undock_pressed.png</file> + <file>rc_light/window_undock_pressed@2x.png</file> </qresource> </RCC> diff --git a/utils/rsc/fonts/FiraCode-Regular.ttf b/utils/rsc/fonts/FiraCode-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0d570685b44c04723bf4ca6c954839034346723d Binary files /dev/null and b/utils/rsc/fonts/FiraCode-Regular.ttf differ diff --git a/utils/rsc/fonts/NotoSans-Bold.ttf b/utils/rsc/fonts/NotoSans-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..54ad879b41b5db8b21dca1aa00a2d474697e7bf0 Binary files /dev/null and b/utils/rsc/fonts/NotoSans-Bold.ttf differ diff --git a/utils/rsc/fonts/NotoSans-BoldItalic.ttf b/utils/rsc/fonts/NotoSans-BoldItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..530a82835d3b0b07d4b56cfae9ebfa5e02a9129e Binary files /dev/null and b/utils/rsc/fonts/NotoSans-BoldItalic.ttf differ diff --git a/utils/rsc/fonts/NotoSans-Italic.ttf b/utils/rsc/fonts/NotoSans-Italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..27ff1ed60a9afc0e6a4d7604abf6d9ad307ef7fd Binary files /dev/null and b/utils/rsc/fonts/NotoSans-Italic.ttf differ diff --git a/utils/rsc/fonts/NotoSans-Regular.ttf b/utils/rsc/fonts/NotoSans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..10589e277ed7087dfd2d499a064e8c0e8bd9efad Binary files /dev/null and b/utils/rsc/fonts/NotoSans-Regular.ttf differ diff --git a/utils/rsc/icons/breeze-dark/document-new.svg b/utils/rsc/icons/breeze-dark/document-new.svg new file mode 100644 index 0000000000000000000000000000000000000000..316017273c750d6e786f49e2a7ce86d8376fff58 --- /dev/null +++ b/utils/rsc/icons/breeze-dark/document-new.svg @@ -0,0 +1,13 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"> + <defs id="defs3051"> + <style type="text/css" id="current-color-scheme"> + .ColorScheme-Text { + color:#eff0f1; + } + </style> + </defs> + <path style="fill:currentColor;fill-opacity:1;stroke:none" + d="M 3 2 L 3 14 L 8 14 L 8 13 L 4 13 L 4 3 L 9 3 L 9 6 L 12 6 L 12 9 L 13 9 L 13 6 L 13 5 L 10 2 L 9 2 L 3 2 z M 10 9 L 10 11 L 8 11 L 8 12 L 10 12 L 10 14 L 11 14 L 11 12 L 13 12 L 13 11 L 11 11 L 11 9 L 10 9 z " + class="ColorScheme-Text" + /> +</svg> diff --git a/utils/rsc/icons/breeze-dark/document-open.svg b/utils/rsc/icons/breeze-dark/document-open.svg new file mode 100644 index 0000000000000000000000000000000000000000..4e0f9c470daab722eceb8f75850c31eec853ece4 --- /dev/null +++ b/utils/rsc/icons/breeze-dark/document-open.svg @@ -0,0 +1,13 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"> + <defs id="defs3051"> + <style type="text/css" id="current-color-scheme"> + .ColorScheme-Text { + color:#eff0f1; + } + </style> + </defs> + <path style="fill:currentColor;fill-opacity:1;stroke:none" + d="M 2 2 L 2 3 L 2 6 L 2 7 L 2 13 L 2 14 L 14 14 L 14 13 L 14 6 L 14 5 L 14 4 L 9.0078125 4 L 7.0078125 2 L 7 2.0078125 L 7 2 L 3 2 L 2 2 z M 3 3 L 6.5917969 3 L 7.59375 4 L 7 4 L 7 4.0078125 L 6.9921875 4 L 4.9921875 6 L 3 6 L 3 3 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z " + class="ColorScheme-Text" + /> +</svg> diff --git a/utils/rsc/icons/breeze-dark/document-save-as.svg b/utils/rsc/icons/breeze-dark/document-save-as.svg new file mode 100644 index 0000000000000000000000000000000000000000..7aa06852a1c22ec900a4b53132ee2693bc0310c5 --- /dev/null +++ b/utils/rsc/icons/breeze-dark/document-save-as.svg @@ -0,0 +1,13 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"> + <defs id="defs3051"> + <style type="text/css" id="current-color-scheme"> + .ColorScheme-Text { + color:#eff0f1; + } + </style> + </defs> + <path style="fill:currentColor;fill-opacity:1;stroke:none" + d="M 2 2 L 2 14 L 3 14 L 4 14 L 7 14 L 7 13 L 6 13 L 5 13 L 5 10 L 6 10 L 7 10 L 8 10 L 8 9 L 7 9 L 5 9 L 3.96875 9 L 3.96875 13 L 3 13 L 3 3 L 4 3 L 5 3 L 5 6 L 5 7 L 7 7 L 11 7 L 11 6 L 11 3 L 11.28125 3 L 13 4.71875 L 13 5 L 13 7 L 14 7 L 14 4.28125 L 11.71875 2 L 11.6875 2 L 11 2 L 4 2 L 3 2 L 2 2 z M 6 3 L 7.90625 3 L 7.90625 6 L 6 6 L 6 3 z M 12 8 L 11 9 L 10 10 L 8 12 L 8 13 L 8 14 L 10 14 L 11 13 L 12 12 L 13 11 L 14 10 L 12 8 z M 11.689453 9.6894531 L 12.28125 10.28125 L 10.59375 11.96875 L 10.59375 11.984375 L 9.3125 13.28125 L 8.71875 12.6875 L 11.689453 9.6894531 z " + class="ColorScheme-Text" + /> +</svg> diff --git a/utils/rsc/icons/breeze-dark/document-save.svg b/utils/rsc/icons/breeze-dark/document-save.svg new file mode 100644 index 0000000000000000000000000000000000000000..1484379e82b5351c9a7cd029fd0b1640dd54e64d --- /dev/null +++ b/utils/rsc/icons/breeze-dark/document-save.svg @@ -0,0 +1,13 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"> + <defs id="defs3051"> + <style type="text/css" id="current-color-scheme"> + .ColorScheme-Text { + color:#eff0f1; + } + </style> + </defs> + <path style="fill:currentColor;fill-opacity:1;stroke:none" + d="M 2 2 L 2 14 L 3 14 L 4 14 L 10 14 L 11 14 L 12 14 L 14 14 L 14 4.28125 L 11.71875 2 L 11.6875 2 L 11 2 L 4 2 L 3 2 L 2 2 z M 3 3 L 4 3 L 5 3 L 5 6 L 5 7 L 11 7 L 11 6 L 11 3 L 11.28125 3 L 13 4.71875 L 13 5 L 13 13 L 12 13 L 12 9 L 11 9 L 5 9 L 3.96875 9 L 3.96875 13 L 3 13 L 3 3 z M 6 3 L 7.90625 3 L 7.90625 6 L 6 6 L 6 3 z M 5 10 L 6 10 L 10 10 L 11 10 L 11 13 L 10 13 L 6 13 L 5 13 L 5 10 z " + class="ColorScheme-Text" + /> +</svg> diff --git a/utils/rsc/icons/breeze-dark/folder.svg b/utils/rsc/icons/breeze-dark/folder.svg new file mode 100644 index 0000000000000000000000000000000000000000..fcd5c0ab3da02bdf4a0c379434970f325bd29781 --- /dev/null +++ b/utils/rsc/icons/breeze-dark/folder.svg @@ -0,0 +1,13 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22"> + <defs id="defs3051"> + <style type="text/css" id="current-color-scheme"> + .ColorScheme-Text { + color:#eff0f1 + } + </style> + </defs> + <path + style="fill:currentColor;fill-opacity:1;stroke:none" + d="M 3 3 L 3 4 L 3 19 L 4 19 L 19 19 L 19 18 L 19 5 L 12.007812 5 L 10.007812 3 L 10 3.0078125 L 10 3 L 4 3 L 3 3 z M 4 4 L 7 4 L 9.5859375 4 L 10.589844 5.0039062 L 6.5703125 9 L 6.5683594 9 L 4 9 L 4 4 z M 9.0078125 8 L 18 8 L 18 18 L 4 18 L 4 10 L 5.5625 10 L 7 10 L 7 9.9921875 L 7.0078125 10 L 9.0078125 8 z " + class="ColorScheme-Text" /> +</svg> diff --git a/utils/rsc/icons/breeze-dark/help-about.svg b/utils/rsc/icons/breeze-dark/help-about.svg new file mode 100644 index 0000000000000000000000000000000000000000..856d1b2b8ba2d50ec2d0c357000992045d106cc8 --- /dev/null +++ b/utils/rsc/icons/breeze-dark/help-about.svg @@ -0,0 +1,12 @@ +<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> + <style type="text/css" id="current-color-scheme"> + .ColorScheme-Text { + color:#eff0f1; + } + </style> + <g class="ColorScheme-Text" fill="currentColor" fill-rule="evenodd"> + <path d="m8 2a6 6 0 0 0 -6 6 6 6 0 0 0 6 6 6 6 0 0 0 6-6 6 6 0 0 0 -6-6zm0 1a5 5 0 0 1 5 5 5 5 0 0 1 -5 5 5 5 0 0 1 -5-5 5 5 0 0 1 5-5z"/> + <path d="m7 4h2v2h-2z"/> + <path d="m7 7h2v5h-2z"/> + </g> +</svg> diff --git a/utils/rsc/icons/breeze-dark/text-x-generic.svg b/utils/rsc/icons/breeze-dark/text-x-generic.svg new file mode 100644 index 0000000000000000000000000000000000000000..f8733cf2d342ac5009d9a4d81232e42f087c5c71 --- /dev/null +++ b/utils/rsc/icons/breeze-dark/text-x-generic.svg @@ -0,0 +1,26 @@ +<svg width="32" xmlns="http://www.w3.org/2000/svg" height="32" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <linearGradient id="a" y1="392.36" y2="365.36" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="translate(309.57 152.44)"> + <stop stop-color="#ffffff" stop-opacity="0"/> + <stop offset="1" stop-color="#ffffff" stop-opacity=".2"/> + </linearGradient> + <linearGradient id="b" y1="17" x1="47" y2="24" gradientUnits="userSpaceOnUse" x2="54" gradientTransform="translate(357.57 507.8)"> + <stop stop-color="#060606"/> + <stop offset="1" stop-opacity="0"/> + </linearGradient> + <path id="c" d="m389.57 545.8v-28h15l7 7v21h-14z"/> + </defs> + <g transform="translate(-384.57-515.8)"> + <g color-rendering="auto" color-interpolation-filters="linearRGB" shape-rendering="auto" image-rendering="auto" text-rendering="auto" color-interpolation="sRGB" color="#000000"> + <use fill="#eeeeee" xlink:href="#c"/> + <g transform="scale(1-1)"> + <rect opacity=".6" x="389.57" y="-518.8" width="15" fill="#ffffff" height="1"/> + <rect opacity=".15" x="389.57" y="-545.8" width="22" height="1"/> + </g> + <path opacity=".5" fill-rule="evenodd" d="m411.57 524.8l-7-7v7z"/> + <path opacity=".6" d="m394.57 537.8v-1h6v1zm0-2v-1h12v1zm0-3v-1h8v1zm0-2v-1h12v1zm0-2v-1h12v1z"/> + </g> + <use fill="url(#a)" xlink:href="#c"/> + <path opacity=".1" fill="url(#b)" fill-rule="evenodd" d="m404.57 524.8l7 7v-7z"/> + </g> +</svg> diff --git a/utils/rsc/icons/breeze-light/document-new.svg b/utils/rsc/icons/breeze-light/document-new.svg new file mode 100644 index 0000000000000000000000000000000000000000..6434a18e6e514b3c09b3c4c1b82b4594669207ca --- /dev/null +++ b/utils/rsc/icons/breeze-light/document-new.svg @@ -0,0 +1,13 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"> + <defs id="defs3051"> + <style type="text/css" id="current-color-scheme"> + .ColorScheme-Text { + color:#232629; + } + </style> + </defs> + <path style="fill:currentColor;fill-opacity:1;stroke:none" + d="M 3 2 L 3 14 L 8 14 L 8 13 L 4 13 L 4 3 L 9 3 L 9 6 L 12 6 L 12 9 L 13 9 L 13 6 L 13 5 L 10 2 L 9 2 L 3 2 z M 10 9 L 10 11 L 8 11 L 8 12 L 10 12 L 10 14 L 11 14 L 11 12 L 13 12 L 13 11 L 11 11 L 11 9 L 10 9 z " + class="ColorScheme-Text" + /> +</svg> diff --git a/utils/rsc/icons/breeze-light/document-open.svg b/utils/rsc/icons/breeze-light/document-open.svg new file mode 100644 index 0000000000000000000000000000000000000000..4d2b838970181d6ee4f841e07d6cba3b8ddcbb14 --- /dev/null +++ b/utils/rsc/icons/breeze-light/document-open.svg @@ -0,0 +1,13 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"> + <defs id="defs3051"> + <style type="text/css" id="current-color-scheme"> + .ColorScheme-Text { + color:#232629; + } + </style> + </defs> + <path style="fill:currentColor;fill-opacity:1;stroke:none" + d="M 2 2 L 2 3 L 2 6 L 2 7 L 2 13 L 2 14 L 14 14 L 14 13 L 14 6 L 14 5 L 14 4 L 9.0078125 4 L 7.0078125 2 L 7 2.0078125 L 7 2 L 3 2 L 2 2 z M 3 3 L 6.5917969 3 L 7.59375 4 L 7 4 L 7 4.0078125 L 6.9921875 4 L 4.9921875 6 L 3 6 L 3 3 z M 3 7 L 13 7 L 13 13 L 3 13 L 3 7 z " + class="ColorScheme-Text" + /> +</svg> diff --git a/utils/rsc/icons/breeze-light/document-save-as.svg b/utils/rsc/icons/breeze-light/document-save-as.svg new file mode 100644 index 0000000000000000000000000000000000000000..b8ad9683168a8958b0b45f9595b072b6844bb8b8 --- /dev/null +++ b/utils/rsc/icons/breeze-light/document-save-as.svg @@ -0,0 +1,13 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"> + <defs id="defs3051"> + <style type="text/css" id="current-color-scheme"> + .ColorScheme-Text { + color:#232629; + } + </style> + </defs> + <path style="fill:currentColor;fill-opacity:1;stroke:none" + d="M 2 2 L 2 14 L 3 14 L 4 14 L 7 14 L 7 13 L 6 13 L 5 13 L 5 10 L 6 10 L 7 10 L 8 10 L 8 9 L 7 9 L 5 9 L 3.96875 9 L 3.96875 13 L 3 13 L 3 3 L 4 3 L 5 3 L 5 6 L 5 7 L 7 7 L 11 7 L 11 6 L 11 3 L 11.28125 3 L 13 4.71875 L 13 5 L 13 7 L 14 7 L 14 4.28125 L 11.71875 2 L 11.6875 2 L 11 2 L 4 2 L 3 2 L 2 2 z M 6 3 L 7.90625 3 L 7.90625 6 L 6 6 L 6 3 z M 12 8 L 11 9 L 10 10 L 8 12 L 8 13 L 8 14 L 10 14 L 11 13 L 12 12 L 13 11 L 14 10 L 12 8 z M 11.689453 9.6894531 L 12.28125 10.28125 L 10.59375 11.96875 L 10.59375 11.984375 L 9.3125 13.28125 L 8.71875 12.6875 L 11.689453 9.6894531 z " + class="ColorScheme-Text" + /> +</svg> diff --git a/utils/rsc/icons/breeze-light/document-save.svg b/utils/rsc/icons/breeze-light/document-save.svg new file mode 100644 index 0000000000000000000000000000000000000000..cd2db5adb0765ae7a3fd8c7eee78bbd1f6fafe87 --- /dev/null +++ b/utils/rsc/icons/breeze-light/document-save.svg @@ -0,0 +1,13 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"> + <defs id="defs3051"> + <style type="text/css" id="current-color-scheme"> + .ColorScheme-Text { + color:#232629; + } + </style> + </defs> + <path style="fill:currentColor;fill-opacity:1;stroke:none" + d="M 2 2 L 2 14 L 3 14 L 4 14 L 10 14 L 11 14 L 12 14 L 14 14 L 14 4.28125 L 11.71875 2 L 11.6875 2 L 11 2 L 4 2 L 3 2 L 2 2 z M 3 3 L 4 3 L 5 3 L 5 6 L 5 7 L 11 7 L 11 6 L 11 3 L 11.28125 3 L 13 4.71875 L 13 5 L 13 13 L 12 13 L 12 9 L 11 9 L 5 9 L 3.96875 9 L 3.96875 13 L 3 13 L 3 3 z M 6 3 L 7.90625 3 L 7.90625 6 L 6 6 L 6 3 z M 5 10 L 6 10 L 10 10 L 11 10 L 11 13 L 10 13 L 6 13 L 5 13 L 5 10 z " + class="ColorScheme-Text" + /> +</svg> diff --git a/utils/rsc/icons/breeze-light/folder.svg b/utils/rsc/icons/breeze-light/folder.svg new file mode 100644 index 0000000000000000000000000000000000000000..7a5f325e433853431b7b570e9052a7274cd5aba4 --- /dev/null +++ b/utils/rsc/icons/breeze-light/folder.svg @@ -0,0 +1,13 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22"> + <defs id="defs3051"> + <style type="text/css" id="current-color-scheme"> + .ColorScheme-Text { + color:#232629 + } + </style> + </defs> + <path + style="fill:currentColor;fill-opacity:1;stroke:none" + d="M 3 3 L 3 4 L 3 19 L 4 19 L 19 19 L 19 18 L 19 5 L 12.007812 5 L 10.007812 3 L 10 3.0078125 L 10 3 L 4 3 L 3 3 z M 4 4 L 7 4 L 9.5859375 4 L 10.589844 5.0039062 L 6.5703125 9 L 6.5683594 9 L 4 9 L 4 4 z M 9.0078125 8 L 18 8 L 18 18 L 4 18 L 4 10 L 5.5625 10 L 7 10 L 7 9.9921875 L 7.0078125 10 L 9.0078125 8 z " + class="ColorScheme-Text" /> +</svg> diff --git a/utils/rsc/icons/breeze-light/help-about.svg b/utils/rsc/icons/breeze-light/help-about.svg new file mode 100644 index 0000000000000000000000000000000000000000..ea1dc02cdb0f4ddba638dd3b881ceaf139e4d4c6 --- /dev/null +++ b/utils/rsc/icons/breeze-light/help-about.svg @@ -0,0 +1,12 @@ +<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> + <style type="text/css" id="current-color-scheme"> + .ColorScheme-Text { + color:#232629; + } + </style> + <g class="ColorScheme-Text" fill="currentColor" fill-rule="evenodd"> + <path d="m8 2a6 6 0 0 0 -6 6 6 6 0 0 0 6 6 6 6 0 0 0 6-6 6 6 0 0 0 -6-6zm0 1a5 5 0 0 1 5 5 5 5 0 0 1 -5 5 5 5 0 0 1 -5-5 5 5 0 0 1 5-5z"/> + <path d="m7 4h2v2h-2z"/> + <path d="m7 7h2v5h-2z"/> + </g> +</svg> diff --git a/utils/rsc/icons/breeze-light/text-x-generic.svg b/utils/rsc/icons/breeze-light/text-x-generic.svg new file mode 100644 index 0000000000000000000000000000000000000000..f8733cf2d342ac5009d9a4d81232e42f087c5c71 --- /dev/null +++ b/utils/rsc/icons/breeze-light/text-x-generic.svg @@ -0,0 +1,26 @@ +<svg width="32" xmlns="http://www.w3.org/2000/svg" height="32" xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs> + <linearGradient id="a" y1="392.36" y2="365.36" gradientUnits="userSpaceOnUse" x2="0" gradientTransform="translate(309.57 152.44)"> + <stop stop-color="#ffffff" stop-opacity="0"/> + <stop offset="1" stop-color="#ffffff" stop-opacity=".2"/> + </linearGradient> + <linearGradient id="b" y1="17" x1="47" y2="24" gradientUnits="userSpaceOnUse" x2="54" gradientTransform="translate(357.57 507.8)"> + <stop stop-color="#060606"/> + <stop offset="1" stop-opacity="0"/> + </linearGradient> + <path id="c" d="m389.57 545.8v-28h15l7 7v21h-14z"/> + </defs> + <g transform="translate(-384.57-515.8)"> + <g color-rendering="auto" color-interpolation-filters="linearRGB" shape-rendering="auto" image-rendering="auto" text-rendering="auto" color-interpolation="sRGB" color="#000000"> + <use fill="#eeeeee" xlink:href="#c"/> + <g transform="scale(1-1)"> + <rect opacity=".6" x="389.57" y="-518.8" width="15" fill="#ffffff" height="1"/> + <rect opacity=".15" x="389.57" y="-545.8" width="22" height="1"/> + </g> + <path opacity=".5" fill-rule="evenodd" d="m411.57 524.8l-7-7v7z"/> + <path opacity=".6" d="m394.57 537.8v-1h6v1zm0-2v-1h12v1zm0-3v-1h8v1zm0-2v-1h12v1zm0-2v-1h12v1z"/> + </g> + <use fill="url(#a)" xlink:href="#c"/> + <path opacity=".1" fill="url(#b)" fill-rule="evenodd" d="m404.57 524.8l7 7v-7z"/> + </g> +</svg> diff --git a/utils/rsc/licence/APACHE-2.0 b/utils/rsc/licence/APACHE-2.0 new file mode 100644 index 0000000000000000000000000000000000000000..ef51da2b0e8df139a427a56d3c2054c1b5e75118 --- /dev/null +++ b/utils/rsc/licence/APACHE-2.0 @@ -0,0 +1,202 @@ + + 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: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) 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 + + (d) 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 + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +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. diff --git a/utils/rsc/licence/CCAI-4.0 b/utils/rsc/licence/CCAI-4.0 new file mode 100644 index 0000000000000000000000000000000000000000..ac63f8dbf4b595b07bc7d294eda179f602639ea7 --- /dev/null +++ b/utils/rsc/licence/CCAI-4.0 @@ -0,0 +1,362 @@ +# Creative Commons Attribution International 4.0 - Images + +Creative Commons Corporation (“Creative Commons”) is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an “as-is” basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +## Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright and +certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + +- **Considerations for licensors:** Our public licenses are intended + for use by those authorized to give the public permission to use + material in ways otherwise restricted by copyright and certain other + rights. Our licenses are irrevocable. Licensors should read and + understand the terms and conditions of the license they choose before + applying it. Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the material as + expected. Licensors should clearly mark any material not subject to + the license. This includes other CC-licensed material, or material + used under an exception or limitation to copyright. More + considerations for + licensors <http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensors>. + +- **Considerations for the public:** By using one of our public + licenses, a licensor grants the public permission to use the licensed + material under specified terms and conditions. If the licensor’s + permission is not necessary for any reason–for example, because of + any applicable exception or limitation to copyright–then that use is + not regulated by the license. Our licenses grant only permissions + under copyright and certain other rights that a licensor has + authority to grant. Use of the licensed material may still be + restricted for other reasons, including because others have copyright + or other rights in the material. A licensor may make special + requests, such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to respect + those requests where reasonable. More considerations for the + public <http://wiki.creativecommons.org/Considerations_for_licensors_and_licensees#Considerations_for_licensees>. + + +# Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of these +terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the Licensed +Material available under these terms and conditions. + +## Section 1 – Definitions + +a. **Adapted Material** means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material and + in which the Licensed Material is translated, altered, arranged, + transformed, or otherwise modified in a manner requiring permission + under the Copyright and Similar Rights held by the Licensor. For + purposes of this Public License, where the Licensed Material is a + musical work, performance, or sound recording, Adapted Material is + always produced where the Licensed Material is synched in timed + relation with a moving image. + +b. **Adapter's License** means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + +c. **Copyright and Similar Rights** means copyright and/or similar + rights closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or categorized. + For purposes of this Public License, the rights specified in Section + 2(b)(1)-(2) are not Copyright and Similar Rights. + +d. **Effective Technological Measures** means those measures that, in + the absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright Treaty + adopted on December 20, 1996, and/or similar international + agreements. + +e. **Exceptions and Limitations** means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + +f. **Licensed Material** means the artistic or literary work, database, + or other material to which the Licensor applied this Public License. + +g. **Licensed Rights** means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to all + Copyright and Similar Rights that apply to Your use of the Licensed + Material and that the Licensor has authority to license. + +h. **Licensor** means the individual(s) or entity(ies) granting rights + under this Public License. + +i. **Share** means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such as + reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the public + may access the material from a place and at a time individually + chosen by them. + +j. **Sui Generis Database Rights** means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, as + amended and/or succeeded, as well as other essentially equivalent + rights anywhere in the world. + +k. **You** means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + +## Section 2 – Scope + +a. **License grant.** + +1. Subject to the terms and conditions of this Public License, the + Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to exercise the + Licensed Rights in the Licensed Material to: + + A. reproduce and Share the Licensed Material, in whole or in part; and + + B. produce, reproduce, and Share Adapted Material. + +2. **Exceptions and Limitations.** For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public License + does not apply, and You do not need to comply with its terms and + conditions. + +3. **Term.** The term of this Public License is specified in Section + 6(a). + +4. **Media and formats; technical modifications allowed.** The Licensor + authorizes You to exercise the Licensed Rights in all media and + formats whether now known or hereafter created, and to make technical + modifications necessary to do so. The Licensor waives and/or agrees + not to assert any right or authority to forbid You from making + technical modifications necessary to exercise the Licensed Rights, + including technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, simply + making modifications authorized by this Section 2(a)(4) never + produces Adapted Material. + +5. **Downstream recipients.** + + A. **Offer from the Licensor – Licensed Material.** Every recipient + of the Licensed Material automatically receives an offer from the + Licensor to exercise the Licensed Rights under the terms and + conditions of this Public License. + + B. **No downstream restrictions.** You may not offer or impose any + additional or different terms or conditions on, or apply any + Effective Technological Measures to, the Licensed Material if doing + so restricts exercise of the Licensed Rights by any recipient of the + Licensed Material. + +6. **No endorsement.** Nothing in this Public License constitutes or may + be construed as permission to assert or imply that You are, or that + Your use of the Licensed Material is, connected with, or sponsored, + endorsed, or granted official status by, the Licensor or others + designated to receive attribution as provided in Section + 3(a)(1)(A)(i). + +b. **Other rights.** + +1. Moral rights, such as the right of integrity, are not licensed under + this Public License, nor are publicity, privacy, and/or other similar + personality rights; however, to the extent possible, the Licensor + waives and/or agrees not to assert any such rights held by the + Licensor to the limited extent necessary to allow You to exercise the + Licensed Rights, but not otherwise. + +2. Patent and trademark rights are not licensed under this Public + License. + +3. To the extent possible, the Licensor waives any right to collect + royalties from You for the exercise of the Licensed Rights, whether + directly or through a collecting society under any voluntary or + waivable statutory or compulsory licensing scheme. In all other cases + the Licensor expressly reserves any right to collect such royalties. + +## Section 3 – License Conditions + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + +a. **Attribution.** + +1. If You Share the Licensed Material (including in modified form), You + must: + + A. retain the following if it is supplied by the Licensor with the + Licensed Material: + + - i. identification of the creator(s) of the Licensed Material and any + others designated to receive attribution, in any reasonable manner + requested by the Licensor (including by pseudonym if designated); + + - ii. a copyright notice; + + - iii. a notice that refers to this Public License; + + - iv. a notice that refers to the disclaimer of warranties; + + - v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable; + + B. indicate if You modified the Licensed Material and retain an + indication of any previous modifications; and + + C. indicate the Licensed Material is licensed under this Public + License, and include the text of, or the URI or hyperlink to, this + Public License. + +2. You may satisfy the conditions in Section 3(a)(1) in any reasonable + manner based on the medium, means, and context in which You Share the + Licensed Material. For example, it may be reasonable to satisfy the + conditions by providing a URI or hyperlink to a resource that + includes the required information. + +3. If requested by the Licensor, You must remove any of the information + required by Section 3(a)(1)(A) to the extent reasonably practicable. + +4. If You Share Adapted Material You produce, the Adapter's License You + apply must not prevent recipients of the Adapted Material from + complying with this Public License. + +## Section 4 – Sui Generis Database Rights + +Where the Licensed Rights include Sui Generis Database Rights that apply +to Your use of the Licensed Material: + +a. for the avoidance of doubt, Section 2(a)(1) grants You the right to + extract, reuse, reproduce, and Share all or a substantial portion of + the contents of the database; + +b. if You include all or a substantial portion of the database contents + in a database in which You have Sui Generis Database Rights, then the + database in which You have Sui Generis Database Rights (but not its + individual contents) is Adapted Material; and + +c. You must comply with the conditions in Section 3(a) if You Share all + or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + +## Section 5 – Disclaimer of Warranties and Limitation of Liability + +a. Unless otherwise separately undertaken by the Licensor, to the + extent possible, the Licensor offers the Licensed Material as-is and + as-available, and makes no representations or warranties of any kind + concerning the Licensed Material, whether express, implied, + statutory, or other. This includes, without limitation, warranties of + title, merchantability, fitness for a particular purpose, + non-infringement, absence of latent or other defects, accuracy, or + the presence or absence of errors, whether or not known or + discoverable. Where disclaimers of warranties are not allowed in full + or in part, this disclaimer may not apply to You. + +b. To the extent possible, in no event will the Licensor be liable to + You on any legal theory (including, without limitation, negligence) + or otherwise for any direct, special, indirect, incidental, + consequential, punitive, exemplary, or other losses, costs, expenses, + or damages arising out of this Public License or use of the Licensed + Material, even if the Licensor has been advised of the possibility of + such losses, costs, expenses, or damages. Where a limitation of + liability is not allowed in full or in part, this limitation may not + apply to You. + +c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent possible, + most closely approximates an absolute disclaimer and waiver of all + liability. + +## Section 6 – Term and Termination + +a. This Public License applies for the term of the Copyright and Similar + Rights licensed here. However, if You fail to comply with this Public + License, then Your rights under this Public License terminate + automatically. + +b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + +1. automatically as of the date the violation is cured, provided it is + cured within 30 days of Your discovery of the violation; or + +2. upon express reinstatement by the Licensor. + +For the avoidance of doubt, this Section 6(b) does not affect any right +the Licensor may have to seek remedies for Your violations of this +Public License. + +c. For the avoidance of doubt, the Licensor may also offer the Licensed + Material under separate terms or conditions or stop distributing the + Licensed Material at any time; however, doing so will not terminate + this Public License. + +d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + +## Section 7 – Other Terms and Conditions + +a. The Licensor shall not be bound by any additional or different terms + or conditions communicated by You unless expressly agreed. + +b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and independent + of the terms and conditions of this Public License. + +## Section 8 – Interpretation + +a. For the avoidance of doubt, this Public License does not, and shall + not be interpreted to, reduce, limit, restrict, or impose conditions + on any use of the Licensed Material that could lawfully be made + without permission under this Public License. + +b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + +c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + +d. Nothing in this Public License constitutes or may be interpreted as a + limitation upon, or waiver of, any privileges and immunities that + apply to the Licensor or You, including from the legal processes of + any jurisdiction or authority. + +Creative Commons is not a party to its public licenses. +Notwithstanding, Creative Commons may elect to apply one of its +public licenses to material it publishes and in those instances will +be considered the “Licensor.” Except for the limited purpose of +indicating that material is shared under a Creative Commons public +license or as otherwise permitted by the Creative Commons policies +published at +creativecommons.org/policies <http://creativecommons.org/policies>, +Creative Commons does not authorize the use of the trademark +"Creative Commons" or any other trademark or logo of Creative +Commons without its prior written consent including, without +limitation, in connection with any unauthorized modifications to any +of its public licenses or any other arrangements, understandings, or +agreements concerning use of licensed material. For the avoidance of +doubt, this paragraph does not form part of the public licenses. + +Creative Commons may be contacted at creativecommons.org diff --git a/utils/rsc/licence/LGPL-V2.0 b/utils/rsc/licence/LGPL-V2.0 new file mode 100644 index 0000000000000000000000000000000000000000..55ecd87c3a1994dedeaabfe7eaf95dc10d30f495 --- /dev/null +++ b/utils/rsc/licence/LGPL-V2.0 @@ -0,0 +1,481 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/utils/rsc/licence/LGPL-V2.1 b/utils/rsc/licence/LGPL-V2.1 new file mode 100644 index 0000000000000000000000000000000000000000..e5ab03e1238af66de157fae2e6270d7e8f967f93 --- /dev/null +++ b/utils/rsc/licence/LGPL-V2.1 @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/utils/rsc/licence/LGPL-V3 b/utils/rsc/licence/LGPL-V3 new file mode 100644 index 0000000000000000000000000000000000000000..0d83951c8886edbb2460138a64af42deac72bbc7 --- /dev/null +++ b/utils/rsc/licence/LGPL-V3 @@ -0,0 +1,164 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/utils/rsc/licence/MIT b/utils/rsc/licence/MIT new file mode 100644 index 0000000000000000000000000000000000000000..f85e365de02a257e41b27305e74277428218ff96 --- /dev/null +++ b/utils/rsc/licence/MIT @@ -0,0 +1,17 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/utils/rsc/licence/OFL-1.1 b/utils/rsc/licence/OFL-1.1 new file mode 100644 index 0000000000000000000000000000000000000000..22d6502adeb48e77e8f50f9722acc8e383af9bc0 --- /dev/null +++ b/utils/rsc/licence/OFL-1.1 @@ -0,0 +1,90 @@ +Copyright (c) year, authors + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +# SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 + +## PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +## DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +## PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, + in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, + redistributed and/or sold with any software, provided that each copy + contains the above copyright notice and this license. These can be + included either as stand-alone text files, human-readable headers or + in the appropriate machine-readable metadata fields within text or + binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font + Name(s) unless explicit written permission is granted by the corresponding + Copyright Holder. This restriction only applies to the primary font name as + presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font + Software shall not be used to promote, endorse or advertise any + Modified Version, except to acknowledge the contribution(s) of the + Copyright Holder(s) and the Author(s) or with their explicit written + permission. + +5) The Font Software, modified or unmodified, in part or in whole, + must be distributed entirely under this license, and must not be + distributed under any other license. The requirement for fonts to + remain under this license does not apply to any document created + using the Font Software. + +## TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +## DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/utils/rsc/qdarkstyle_dark.qss b/utils/rsc/qdarkstyle_dark.qss new file mode 100644 index 0000000000000000000000000000000000000000..111a24d388536cd35c0a05c189fb95b19047c17c --- /dev/null +++ b/utils/rsc/qdarkstyle_dark.qss @@ -0,0 +1,2212 @@ +/* --------------------------------------------------------------------------- + + WARNING! File created programmatically. All changes made in this file will be lost! + + Created by the qtsass compiler v0.3.0 + + The definitions are in the "qdarkstyle.qss._styles.scss" module + +--------------------------------------------------------------------------- */ +/* Light Style - QDarkStyleSheet ------------------------------------------ */ +/* + +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #19232D; + border: 0px solid #455364; + padding: 0px; + color: #E0E1E3; + selection-background-color: #346792; + selection-color: #E0E1E3; +} + +QWidget:disabled { + background-color: #19232D; + color: #9DA9B5; + selection-background-color: #26486B; + selection-color: #9DA9B5; +} + +QWidget::item:selected { + background-color: #346792; +} + +QWidget::item:hover:!selected { + background-color: #1A72BB; +} + +/* QMainWindow ------------------------------------------------------------ + +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow + +--------------------------------------------------------------------------- */ +QMainWindow::separator { + background-color: #455364; + border: 0px solid #19232D; + spacing: 0px; + padding: 2px; +} + +QMainWindow::separator:hover { + background-color: #60798B; + border: 0px solid #1A72BB; +} + +QMainWindow::separator:horizontal { + width: 5px; + margin-top: 2px; + margin-bottom: 2px; + image: url(":/qss_icons/dark/rc_dark/toolbar_separator_vertical.png"); +} + +QMainWindow::separator:vertical { + height: 5px; + margin-left: 2px; + margin-right: 2px; + image: url(":/qss_icons/dark/rc_dark/toolbar_separator_horizontal.png"); +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #346792; + color: #E0E1E3; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 1px solid #455364; + /* Fixes Spyder #9120, #9121 */ + background: #455364; + /* Fixes #205, white vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #1A72BB; + border: 1px solid #19232D; + color: #19232D; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + background-color: #19232D; + color: #E0E1E3; + spacing: 4px; + outline: none; + padding-top: 4px; + padding-bottom: 4px; +} + +QCheckBox:focus { + border: none; +} + +QCheckBox QWidget:disabled { + background-color: #19232D; + color: #9DA9B5; +} + +QCheckBox::indicator { + margin-left: 2px; + height: 14px; + width: 14px; +} + +QCheckBox::indicator:unchecked { + image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked.png"); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + border: none; + image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked_focus.png"); +} + +QCheckBox::indicator:unchecked:disabled { + image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked_disabled.png"); +} + +QCheckBox::indicator:checked { + image: url(":/qss_icons/dark/rc_dark/checkbox_checked.png"); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:focus, QCheckBox::indicator:checked:pressed { + border: none; + image: url(":/qss_icons/dark/rc_dark/checkbox_checked_focus.png"); +} + +QCheckBox::indicator:checked:disabled { + image: url(":/qss_icons/dark/rc_dark/checkbox_checked_disabled.png"); +} + +QCheckBox::indicator:indeterminate { + image: url(":/qss_icons/dark/rc_dark/checkbox_indeterminate.png"); +} + +QCheckBox::indicator:indeterminate:disabled { + image: url(":/qss_icons/dark/rc_dark/checkbox_indeterminate_disabled.png"); +} + +QCheckBox::indicator:indeterminate:focus, QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + image: url(":/qss_icons/dark/rc_dark/checkbox_indeterminate_focus.png"); +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #455364; + border-radius: 4px; + padding: 2px; + margin-top: 6px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: -4px; +} + +QGroupBox::indicator { + margin-left: 2px; + margin-top: 2px; + padding: 0; + height: 14px; + width: 14px; +} + +QGroupBox::indicator:unchecked { + border: none; + image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked.png"); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + border: none; + image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked_focus.png"); +} + +QGroupBox::indicator:unchecked:disabled { + image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked_disabled.png"); +} + +QGroupBox::indicator:checked { + border: none; + image: url(":/qss_icons/dark/rc_dark/checkbox_checked.png"); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + border: none; + image: url(":/qss_icons/dark/rc_dark/checkbox_checked_focus.png"); +} + +QGroupBox::indicator:checked:disabled { + image: url(":/qss_icons/dark/rc_dark/checkbox_checked_disabled.png"); +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: #19232D; + color: #E0E1E3; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + border: none; + outline: none; +} + +QRadioButton:focus { + border: none; +} + +QRadioButton:disabled { + background-color: #19232D; + color: #9DA9B5; + border: none; + outline: none; +} + +QRadioButton QWidget { + background-color: #19232D; + color: #E0E1E3; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + border: none; + outline: none; + margin-left: 2px; + height: 14px; + width: 14px; +} + +QRadioButton::indicator:unchecked { + image: url(":/qss_icons/dark/rc_dark/radio_unchecked.png"); +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:focus, QRadioButton::indicator:unchecked:pressed { + border: none; + outline: none; + image: url(":/qss_icons/dark/rc_dark/radio_unchecked_focus.png"); +} + +QRadioButton::indicator:unchecked:disabled { + image: url(":/qss_icons/dark/rc_dark/radio_unchecked_disabled.png"); +} + +QRadioButton::indicator:checked { + border: none; + outline: none; + image: url(":/qss_icons/dark/rc_dark/radio_checked.png"); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:focus, QRadioButton::indicator:checked:pressed { + border: none; + outline: none; + image: url(":/qss_icons/dark/rc_dark/radio_checked_focus.png"); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + image: url(":/qss_icons/dark/rc_dark/radio_checked_disabled.png"); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #455364; + padding: 2px; + border: 1px solid #19232D; + color: #E0E1E3; + selection-background-color: #1A72BB; +} + +QMenuBar:focus { + border: 1px solid #346792; +} + +QMenuBar::item { + background: transparent; + padding: 4px; +} + +QMenuBar::item:selected { + padding: 4px; + background: transparent; + border: 0px solid #455364; + background-color: #1A72BB; +} + +QMenuBar::item:pressed { + padding: 4px; + border: 0px solid #455364; + background-color: #1A72BB; + color: #E0E1E3; + margin-bottom: 0px; + padding-bottom: 0px; +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border: 0px solid #455364; + color: #E0E1E3; + margin: 0px; + background-color: #37414F; + selection-background-color: #1A72BB; +} + +QMenu::separator { + height: 1px; + background-color: #60798B; + color: #E0E1E3; +} + +QMenu::item { + background-color: #37414F; + padding: 4px 24px 4px 28px; + /* Reserve space for selection border */ + border: 1px transparent #455364; +} + +QMenu::item:selected { + color: #E0E1E3; + background-color: #1A72BB; +} + +QMenu::item:pressed { + background-color: #1A72BB; +} + +QMenu::icon { + padding-left: 10px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + padding-left: 8px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::indicator:non-exclusive:unchecked { + image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked.png"); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked_focus.png"); +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked_disabled.png"); +} + +QMenu::indicator:non-exclusive:checked { + image: url(":/qss_icons/dark/rc_dark/checkbox_checked.png"); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + image: url(":/qss_icons/dark/rc_dark/checkbox_checked_focus.png"); +} + +QMenu::indicator:non-exclusive:checked:disabled { + image: url(":/qss_icons/dark/rc_dark/checkbox_checked_disabled.png"); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(":/qss_icons/dark/rc_dark/checkbox_indeterminate.png"); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(":/qss_icons/dark/rc_dark/checkbox_indeterminate_disabled.png"); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(":/qss_icons/dark/rc_dark/checkbox_indeterminate_focus.png"); +} + +QMenu::indicator:exclusive:unchecked { + image: url(":/qss_icons/dark/rc_dark/radio_unchecked.png"); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + image: url(":/qss_icons/dark/rc_dark/radio_unchecked_focus.png"); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(":/qss_icons/dark/rc_dark/radio_unchecked_disabled.png"); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(":/qss_icons/dark/rc_dark/radio_checked.png"); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + image: url(":/qss_icons/dark/rc_dark/radio_checked_focus.png"); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(":/qss_icons/dark/rc_dark/radio_checked_disabled.png"); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image: url(":/qss_icons/dark/rc_dark/arrow_right.png"); + height: 12px; + width: 12px; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #19232D; + color: #E0E1E3; + border: 1px solid #455364; + border-radius: 4px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: #19232D; + border: 1px solid #455364; + border-radius: 4px; + /* fix #159 */ + padding: 2px; + /* remove min-height to fix #244 */ + color: #E0E1E3; +} + +QAbstractScrollArea:disabled { + color: #9DA9B5; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- */ +QScrollArea QWidget QWidget:disabled { + background-color: #19232D; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: 1px solid #455364; + border-radius: 4px; + background-color: #19232D; +} + +QScrollBar:vertical { + background-color: #19232D; + width: 16px; + margin: 16px 2px 16px 2px; + border: 1px solid #455364; + border-radius: 4px; +} + +QScrollBar::handle:horizontal { + background-color: #60798B; + border: 1px solid #455364; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #346792; + border: #346792; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #1A72BB; +} + +QScrollBar::handle:vertical { + background-color: #60798B; + border: 1px solid #455364; + min-height: 8px; + border-radius: 4px; +} + +QScrollBar::handle:vertical:hover { + background-color: #346792; + border: #346792; + border-radius: 4px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #1A72BB; +} + +QScrollBar::add-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(":/qss_icons/dark/rc_dark/arrow_right_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(":/qss_icons/dark/rc_dark/arrow_right.png"); + height: 12px; + width: 12px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 3px 0px 3px 0px; + border-image: url(":/qss_icons/dark/rc_dark/arrow_down_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(":/qss_icons/dark/rc_dark/arrow_down.png"); + height: 12px; + width: 12px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 3px 0px 3px; + border-image: url(":/qss_icons/dark/rc_dark/arrow_left_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(":/qss_icons/dark/rc_dark/arrow_left.png"); + height: 12px; + width: 12px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 3px 0px 3px 0px; + border-image: url(":/qss_icons/dark/rc_dark/arrow_up_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + border-image: url(":/qss_icons/dark/rc_dark/arrow_up.png"); + height: 12px; + width: 12px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #19232D; + color: #E0E1E3; + border-radius: 4px; + border: 1px solid #455364; +} + +QTextEdit:focus { + border: 1px solid #1A72BB; +} + +QTextEdit:selected { + background: #346792; + color: #455364; +} + +/* QPlainTextEdit --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #19232D; + color: #E0E1E3; + border-radius: 4px; + border: 1px solid #455364; +} + +QPlainTextEdit:focus { + border: 1px solid #1A72BB; +} + +QPlainTextEdit:selected { + background: #346792; + color: #455364; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image: url(":/qss_icons/dark/rc_dark/window_grip.png"); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 2px; + border: 1px solid #455364; + border: 1px solid #19232D; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #455364; + border-bottom: 1px solid #19232D; + padding: 1px; + font-weight: bold; + spacing: 2px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #455364; +} + +QToolBar::handle:horizontal { + width: 16px; + image: url(":/qss_icons/dark/rc_dark/toolbar_move_horizontal.png"); +} + +QToolBar::handle:vertical { + height: 16px; + image: url(":/qss_icons/dark/rc_dark/toolbar_move_vertical.png"); +} + +QToolBar::separator:horizontal { + width: 16px; + image: url(":/qss_icons/dark/rc_dark/toolbar_separator_horizontal.png"); +} + +QToolBar::separator:vertical { + height: 16px; + image: url(":/qss_icons/dark/rc_dark/toolbar_separator_vertical.png"); +} + +QToolButton#qt_toolbar_ext_button { + background: #455364; + border: 0px; + color: #E0E1E3; + image: url(":/qss_icons/dark/rc_dark/arrow_right.png"); +} + +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox { + background-color: #19232D; + border: 1px solid #455364; + color: #E0E1E3; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + border-radius: 4px; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: transparent #19232D; + subcontrol-origin: border; + subcontrol-position: top right; + border-left: 1px solid #455364; + border-bottom: 1px solid #455364; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin: 1px; + width: 12px; + margin-bottom: -1px; +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(":/qss_icons/dark/rc_dark/arrow_up_disabled.png"); + height: 8px; + width: 8px; +} + +QAbstractSpinBox::up-arrow:hover { + image: url(":/qss_icons/dark/rc_dark/arrow_up.png"); +} + +QAbstractSpinBox:down-button { + background-color: transparent #19232D; + subcontrol-origin: border; + subcontrol-position: bottom right; + border-left: 1px solid #455364; + border-top: 1px solid #455364; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin: 1px; + width: 12px; + margin-top: -1px; +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(":/qss_icons/dark/rc_dark/arrow_down_disabled.png"); + height: 8px; + width: 8px; +} + +QAbstractSpinBox::down-arrow:hover { + image: url(":/qss_icons/dark/rc_dark/arrow_down.png"); +} + +QAbstractSpinBox:hover { + border: 1px solid #346792; + color: #E0E1E3; +} + +QAbstractSpinBox:focus { + border: 1px solid #1A72BB; +} + +QAbstractSpinBox:selected { + background: #346792; + color: #455364; +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: #19232D; + border: 0px solid #455364; + padding: 2px; + margin: 0px; + color: #E0E1E3; +} + +QLabel:disabled { + background-color: #19232D; + border: 0px solid #455364; + color: #9DA9B5; +} + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #19232D; + border: 1px solid #455364; + color: #E0E1E3; + border-radius: 4px; +} + +QTextBrowser:disabled { + background-color: #19232D; + border: 1px solid #455364; + color: #9DA9B5; + border-radius: 4px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #455364; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: #19232D; + border: 1px solid #455364; + color: #E0E1E3; + border-radius: 4px; +} + +QGraphicsView:disabled { + background-color: #19232D; + border: 1px solid #455364; + color: #9DA9B5; + border-radius: 4px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 1px solid #455364; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #455364; + border-radius: 4px; +} + +QCalendarWidget:disabled { + background-color: #19232D; + color: #9DA9B5; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #19232D; + color: #E0E1E3; +} + +QLCDNumber:disabled { + background-color: #19232D; + color: #9DA9B5; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #19232D; + border: 1px solid #455364; + color: #E0E1E3; + border-radius: 4px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #19232D; + border: 1px solid #455364; + color: #9DA9B5; + border-radius: 4px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #346792; + color: #19232D; + border-radius: 4px; +} + +QProgressBar::chunk:disabled { + background-color: #26486B; + color: #9DA9B5; + border-radius: 4px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: #455364; + color: #E0E1E3; + border-radius: 4px; + padding: 2px; + outline: none; + border: none; +} + +QPushButton:disabled { + background-color: #455364; + color: #9DA9B5; + border-radius: 4px; + padding: 2px; +} + +QPushButton:checked { + background-color: #60798B; + border-radius: 4px; + padding: 2px; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #60798B; + color: #9DA9B5; + border-radius: 4px; + padding: 2px; + outline: none; +} + +QPushButton:checked:selected { + background: #60798B; +} + +QPushButton:hover { + background-color: #54687A; + color: #E0E1E3; +} + +QPushButton:pressed { + background-color: #60798B; +} + +QPushButton:selected { + background: #60798B; + color: #E0E1E3; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue #194 #248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: #455364; + color: #E0E1E3; + border-radius: 4px; + padding: 2px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: #455364; + color: #9DA9B5; + border-radius: 4px; + padding: 2px; +} + +QToolButton:checked { + background-color: #60798B; + border-radius: 4px; + padding: 2px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #60798B; + color: #9DA9B5; + border-radius: 4px; + padding: 2px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #54687A; + color: #E0E1E3; +} + +QToolButton:checked:pressed { + background-color: #60798B; +} + +QToolButton:checked:selected { + background: #60798B; + color: #E0E1E3; +} + +QToolButton:hover { + background-color: #54687A; + color: #E0E1E3; +} + +QToolButton:pressed { + background-color: #60798B; +} + +QToolButton:selected { + background: #60798B; + color: #E0E1E3; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 2px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 1px solid #455364; + border-radius: 0; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 2px; +} + +QToolButton::menu-button { + padding: 2px; + border-radius: 4px; + width: 12px; + border: none; + outline: none; +} + +QToolButton::menu-button:hover { + border: 1px solid #346792; +} + +QToolButton::menu-button:checked:hover { + border: 1px solid #346792; +} + +QToolButton::menu-indicator { + image: url(":/qss_icons/dark/rc_dark/arrow_down.png"); + height: 8px; + width: 8px; + top: 0; + /* Exclude a shift for better image */ + left: -2px; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(":/qss_icons/dark/rc_dark/arrow_down.png"); + height: 8px; + width: 8px; +} + +QToolButton::menu-arrow:hover { + image: url(":/qss_icons/dark/rc_dark/arrow_down_focus.png"); +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #455364; + color: #E0E1E3; + border-radius: 4px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #9DA9B5; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid #455364; + border-radius: 4px; + selection-background-color: #346792; + padding-left: 4px; + padding-right: 4px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} + +QComboBox QAbstractItemView { + border: 1px solid #455364; + border-radius: 0; + background-color: #19232D; + selection-background-color: #346792; +} + +QComboBox QAbstractItemView:hover { + background-color: #19232D; + color: #E0E1E3; +} + +QComboBox QAbstractItemView:selected { + background: #346792; + color: #455364; +} + +QComboBox QAbstractItemView:alternate { + background: #19232D; +} + +QComboBox:disabled { + background-color: #19232D; + color: #9DA9B5; +} + +QComboBox:hover { + border: 1px solid #346792; +} + +QComboBox:focus { + border: 1px solid #1A72BB; +} + +QComboBox:on { + selection-background-color: #346792; +} + +QComboBox::indicator { + border: none; + border-radius: 0; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: transparent; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #19232D; +} + +QComboBox::item:alternate { + background: #19232D; +} + +QComboBox::item:checked { + font-weight: bold; +} + +QComboBox::item:selected { + border: 0px solid transparent; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #455364; +} + +QComboBox::down-arrow { + image: url(":/qss_icons/dark/rc_dark/arrow_down_disabled.png"); + height: 8px; + width: 8px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(":/qss_icons/dark/rc_dark/arrow_down.png"); +} + +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #19232D; +} + +QSlider:focus { + border: none; +} + +QSlider::groove:horizontal { + background: #455364; + border: 1px solid #455364; + height: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::groove:vertical { + background: #455364; + border: 1px solid #455364; + width: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::add-page:vertical { + background: #346792; + border: 1px solid #455364; + width: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::add-page:vertical :disabled { + background: #26486B; +} + +QSlider::sub-page:horizontal { + background: #346792; + border: 1px solid #455364; + height: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::sub-page:horizontal:disabled { + background: #26486B; +} + +QSlider::handle:horizontal { + background: #9DA9B5; + border: 1px solid #455364; + width: 8px; + height: 8px; + margin: -8px 0px; + border-radius: 4px; +} + +QSlider::handle:horizontal:hover { + background: #346792; + border: 1px solid #346792; +} + +QSlider::handle:horizontal:focus { + border: 1px solid #1A72BB; +} + +QSlider::handle:vertical { + background: #9DA9B5; + border: 1px solid #455364; + width: 8px; + height: 8px; + margin: 0 -8px; + border-radius: 4px; +} + +QSlider::handle:vertical:hover { + background: #346792; + border: 1px solid #346792; +} + +QSlider::handle:vertical:focus { + border: 1px solid #1A72BB; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #19232D; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #455364; + border-radius: 4px; + color: #E0E1E3; +} + +QLineEdit:disabled { + background-color: #19232D; + color: #9DA9B5; +} + +QLineEdit:hover { + border: 1px solid #346792; + color: #E0E1E3; +} + +QLineEdit:focus { + border: 1px solid #1A72BB; +} + +QLineEdit:selected { + background-color: #346792; + color: #455364; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #455364; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 4px; +} + +QTabWidget::pane { + border: 1px solid #455364; + border-radius: 4px; + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #455364; + border: 1px solid #346792; +} + +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + border-radius: 4px; + margin: 0px; + padding: 2px; + border: 0; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 4px; + image: url(":/qss_icons/dark/rc_dark/window_close.png"); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(":/qss_icons/dark/rc_dark/window_close_focus.png"); +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(":/qss_icons/dark/rc_dark/window_close_pressed.png"); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + border-bottom: 3px solid #26486B; + color: #9DA9B5; + background-color: #455364; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + border-top: 3px solid #26486B; + color: #9DA9B5; + background-color: #455364; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + border-right: 3px solid #26486B; + color: #9DA9B5; + background-color: #455364; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + border-left: 3px solid #26486B; + color: #9DA9B5; + background-color: #455364; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + border-bottom: 3px solid #19232D; + color: #9DA9B5; + background-color: #19232D; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + border-top: 3px solid #19232D; + color: #9DA9B5; + background-color: #19232D; +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + border-right: 3px solid #19232D; + color: #9DA9B5; + background-color: #19232D; +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + border-left: 3px solid #19232D; + color: #9DA9B5; + background-color: #19232D; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + border-bottom: 2px solid #19232D; + margin-top: 2px; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + border-top: 2px solid #19232D; + margin-bottom: 2px; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + border-left: 2px solid #19232D; + margin-right: 2px; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + border-right: 2px solid #19232D; + margin-left: 2px; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + background-color: #455364; + margin-left: 2px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 3px solid #455364; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + background-color: #54687A; + border-bottom: 3px solid #259AE9; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + border: 1px solid #1A72BB; + border-bottom: 3px solid #1A72BB; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + border-top: 3px solid #455364; + background-color: #455364; + margin-left: 2px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + min-width: 5px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + background-color: #54687A; + border-top: 3px solid #259AE9; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { + border: 1px solid #1A72BB; + border-top: 3px solid #1A72BB; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #455364; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #54687A; + border-right: 3px solid #259AE9; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 1px solid #1A72BB; + border-right: 3px solid #1A72BB; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #455364; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #54687A; + border-left: 3px solid #259AE9; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 1px solid #1A72BB; + border-left: 3px solid #1A72BB; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #455364; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + background-color: #455364; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 1px solid #346792; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(":/qss_icons/dark/rc_dark/arrow_left.png"); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(":/qss_icons/dark/rc_dark/arrow_left_disabled.png"); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(":/qss_icons/dark/rc_dark/arrow_right.png"); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(":/qss_icons/dark/rc_dark/arrow_right_disabled.png"); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + outline: 1px solid #455364; + background-color: #19232D; + border: 1px solid #455364; + border-radius: 4px; + titlebar-close-icon: url(":/qss_icons/dark/rc_dark/transparent.png"); + titlebar-normal-icon: url(":/qss_icons/dark/rc_dark/transparent.png"); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: #455364; +} + +QDockWidget::close-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(":/qss_icons/dark/rc_dark/window_close.png"); +} + +QDockWidget::close-button:hover { + image: url(":/qss_icons/dark/rc_dark/window_close_focus.png"); +} + +QDockWidget::close-button:pressed { + image: url(":/qss_icons/dark/rc_dark/window_close_pressed.png"); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(":/qss_icons/dark/rc_dark/window_undock.png"); +} + +QDockWidget::float-button:hover { + image: url(":/qss_icons/dark/rc_dark/window_undock_focus.png"); +} + +QDockWidget::float-button:pressed { + image: url(":/qss_icons/dark/rc_dark/window_undock_pressed.png"); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView:branch:selected, QTreeView:branch:hover { + background: url(":/qss_icons/dark/rc_dark/transparent.png"); +} + +QTreeView:branch:has-siblings:!adjoins-item { + border-image: url(":/qss_icons/dark/rc_dark/branch_line.png") 0; +} + +QTreeView:branch:has-siblings:adjoins-item { + border-image: url(":/qss_icons/dark/rc_dark/branch_more.png") 0; +} + +QTreeView:branch:!has-children:!has-siblings:adjoins-item { + border-image: url(":/qss_icons/dark/rc_dark/branch_end.png") 0; +} + +QTreeView:branch:has-children:!has-siblings:closed, QTreeView:branch:closed:has-children:has-siblings { + border-image: none; + image: url(":/qss_icons/dark/rc_dark/branch_closed.png"); +} + +QTreeView:branch:open:has-children:!has-siblings, QTreeView:branch:open:has-children:has-siblings { + border-image: none; + image: url(":/qss_icons/dark/rc_dark/branch_open.png"); +} + +QTreeView:branch:has-children:!has-siblings:closed:hover, QTreeView:branch:closed:has-children:has-siblings:hover { + image: url(":/qss_icons/dark/rc_dark/branch_closed_focus.png"); +} + +QTreeView:branch:open:has-children:!has-siblings:hover, QTreeView:branch:open:has-children:has-siblings:hover { + image: url(":/qss_icons/dark/rc_dark/branch_open_focus.png"); +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(":/qss_icons/dark/rc_dark/checkbox_checked.png"); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(":/qss_icons/dark/rc_dark/checkbox_checked_focus.png"); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked.png"); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(":/qss_icons/dark/rc_dark/checkbox_unchecked_focus.png"); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(":/qss_icons/dark/rc_dark/checkbox_indeterminate.png"); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(":/qss_icons/dark/rc_dark/checkbox_indeterminate_focus.png"); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #19232D; + border: 1px solid #455364; + color: #E0E1E3; + gridline-color: #455364; + border-radius: 4px; +} + +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #19232D; + color: #9DA9B5; +} + +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #346792; + color: #455364; +} + +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #1A72BB; +} + +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #346792; +} + +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #346792; +} + +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: #E0E1E3; + background-color: #37414F; +} + +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: #E0E1E3; + background-color: #37414F; +} + +QTableCornerButton::section { + background-color: #19232D; + border: 1px transparent #455364; + border-radius: 0px; +} + +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: #455364; + border: 0px transparent #455364; + padding: 0; + margin: 0; + border-radius: 0; +} + +QHeaderView:disabled { + background-color: #455364; + border: 1px transparent #455364; +} + +QHeaderView::section { + background-color: #455364; + color: #E0E1E3; + border-radius: 0; + text-align: left; + font-size: 13px; +} + +QHeaderView::section::horizontal { + padding-top: 0; + padding-bottom: 0; + padding-left: 4px; + padding-right: 4px; + border-left: 1px solid #19232D; +} + +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 1px solid #455364; +} + +QHeaderView::section::horizontal:disabled { + color: #9DA9B5; +} + +QHeaderView::section::vertical { + padding-top: 0; + padding-bottom: 0; + padding-left: 4px; + padding-right: 4px; + border-top: 1px solid #19232D; +} + +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 1px solid #455364; +} + +QHeaderView::section::vertical:disabled { + color: #9DA9B5; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: #455364; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(":/qss_icons/dark/rc_dark/arrow_down.png"); +} + +QHeaderView::up-arrow { + background-color: #455364; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(":/qss_icons/dark/rc_dark/arrow_up.png"); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 0px; + border: 1px solid #455364; +} + +QToolBox:selected { + padding: 0px; + border: 2px solid #346792; +} + +QToolBox::tab { + background-color: #19232D; + border: 1px solid #455364; + color: #E0E1E3; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QToolBox::tab:disabled { + color: #9DA9B5; +} + +QToolBox::tab:selected { + background-color: #60798B; + border-bottom: 2px solid #346792; +} + +QToolBox::tab:selected:disabled { + background-color: #455364; + border-bottom: 2px solid #26486B; +} + +QToolBox::tab:!selected { + background-color: #455364; + border-bottom: 2px solid #455364; +} + +QToolBox::tab:!selected:disabled { + background-color: #19232D; +} + +QToolBox::tab:hover { + border-color: #1A72BB; + border-bottom: 2px solid #1A72BB; +} + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: #19232D; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 4px; + border: 1px solid #455364; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 4px; + border: 1px transparent #455364; +} + +.QFrame[frameShape="4"] { + max-height: 2px; + border: none; + background-color: #455364; +} + +.QFrame[frameShape="5"] { + max-width: 2px; + border: none; + background-color: #455364; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +--------------------------------------------------------------------------- */ +QSplitter { + background-color: #455364; + spacing: 0px; + padding: 0px; + margin: 0px; +} + +QSplitter::handle { + background-color: #455364; + border: 0px solid #19232D; + spacing: 0px; + padding: 1px; + margin: 0px; +} + +QSplitter::handle:hover { + background-color: #9DA9B5; +} + +QSplitter::handle:horizontal { + width: 5px; + image: url(":/qss_icons/dark/rc_dark/line_vertical.png"); +} + +QSplitter::handle:vertical { + height: 5px; + image: url(":/qss_icons/dark/rc_dark/line_horizontal.png"); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #346792; + border-style: solid; + border: 1px solid #455364; + border-radius: 4px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #346792; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #455364; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(":/qss_icons/dark/rc_dark/arrow_down_disabled.png"); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(":/qss_icons/dark/rc_dark/arrow_down.png"); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #19232D; + border-radius: 4px; + border: 1px solid #455364; + selection-background-color: #346792; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #346792; + color: #E0E1E3; +} + +QAbstractView:selected { + background: #346792; + color: #455364; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} diff --git a/utils/rsc/qdarkstyle_light.qss b/utils/rsc/qdarkstyle_light.qss new file mode 100644 index 0000000000000000000000000000000000000000..4fa86e125e84aff13b7b565d664a68fab52db0c3 --- /dev/null +++ b/utils/rsc/qdarkstyle_light.qss @@ -0,0 +1,2212 @@ +/* --------------------------------------------------------------------------- + + WARNING! File created programmatically. All changes made in this file will be lost! + + Created by the qtsass compiler v0.3.0 + + The definitions are in the "qdarkstyle.qss._styles.scss" module + +--------------------------------------------------------------------------- */ +/* Dark Style - QDarkStyleSheet ------------------------------------------ */ +/* + +See Qt documentation: + + - https://doc.qt.io/qt-5/stylesheet.html + - https://doc.qt.io/qt-5/stylesheet-reference.html + - https://doc.qt.io/qt-5/stylesheet-examples.html + +--------------------------------------------------------------------------- */ +/* Reset elements ------------------------------------------------------------ + +Resetting everything helps to unify styles across different operating systems + +--------------------------------------------------------------------------- */ +* { + padding: 0px; + margin: 0px; + border: 0px; + border-style: none; + border-image: none; + outline: 0; +} + +/* specific reset for elements inside QToolBar */ +QToolBar * { + margin: 0px; + padding: 0px; +} + +/* QWidget ---------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QWidget { + background-color: #FAFAFA; + border: 0px solid #C9CDD0; + padding: 0px; + color: #19232D; + selection-background-color: #9FCBFF; + selection-color: #19232D; +} + +QWidget:disabled { + background-color: #FAFAFA; + color: #788D9C; + selection-background-color: #DAEDFF; + selection-color: #788D9C; +} + +QWidget::item:selected { + background-color: #9FCBFF; +} + +QWidget::item:hover:!selected { + background-color: #73C7FF; +} + +/* QMainWindow ------------------------------------------------------------ + +This adjusts the splitter in the dock widget, not qsplitter +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmainwindow + +--------------------------------------------------------------------------- */ +QMainWindow::separator { + background-color: #C9CDD0; + border: 0px solid #FAFAFA; + spacing: 0px; + padding: 2px; +} + +QMainWindow::separator:hover { + background-color: #ACB1B6; + border: 0px solid #73C7FF; +} + +QMainWindow::separator:horizontal { + width: 5px; + margin-top: 2px; + margin-bottom: 2px; + image: url(":/qss_icons/light/rc_light/toolbar_separator_vertical.png"); +} + +QMainWindow::separator:vertical { + height: 5px; + margin-left: 2px; + margin-right: 2px; + image: url(":/qss_icons/light/rc_light/toolbar_separator_horizontal.png"); +} + +/* QToolTip --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtooltip + +--------------------------------------------------------------------------- */ +QToolTip { + background-color: #9FCBFF; + color: #19232D; + /* If you remove the border property, background stops working on Windows */ + border: none; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Remove opacity, fix #174 - may need to use RGBA */ +} + +/* QStatusBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qstatusbar + +--------------------------------------------------------------------------- */ +QStatusBar { + border: 1px solid #C9CDD0; + /* Fixes Spyder #9120, #9121 */ + background: #C9CDD0; + /* Fixes #205, white vertical borders separating items */ +} + +QStatusBar::item { + border: none; +} + +QStatusBar QToolTip { + background-color: #73C7FF; + border: 1px solid #FAFAFA; + color: #FAFAFA; + /* Remove padding, for fix combo box tooltip */ + padding: 0px; + /* Reducing transparency to read better */ + opacity: 230; +} + +QStatusBar QLabel { + /* Fixes Spyder #9120, #9121 */ + background: transparent; +} + +/* QCheckBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcheckbox + +--------------------------------------------------------------------------- */ +QCheckBox { + background-color: #FAFAFA; + color: #19232D; + spacing: 4px; + outline: none; + padding-top: 4px; + padding-bottom: 4px; +} + +QCheckBox:focus { + border: none; +} + +QCheckBox QWidget:disabled { + background-color: #FAFAFA; + color: #788D9C; +} + +QCheckBox::indicator { + margin-left: 2px; + height: 14px; + width: 14px; +} + +QCheckBox::indicator:unchecked { + image: url(":/qss_icons/light/rc_light/checkbox_unchecked.png"); +} + +QCheckBox::indicator:unchecked:hover, QCheckBox::indicator:unchecked:focus, QCheckBox::indicator:unchecked:pressed { + border: none; + image: url(":/qss_icons/light/rc_light/checkbox_unchecked_focus.png"); +} + +QCheckBox::indicator:unchecked:disabled { + image: url(":/qss_icons/light/rc_light/checkbox_unchecked_disabled.png"); +} + +QCheckBox::indicator:checked { + image: url(":/qss_icons/light/rc_light/checkbox_checked.png"); +} + +QCheckBox::indicator:checked:hover, QCheckBox::indicator:checked:focus, QCheckBox::indicator:checked:pressed { + border: none; + image: url(":/qss_icons/light/rc_light/checkbox_checked_focus.png"); +} + +QCheckBox::indicator:checked:disabled { + image: url(":/qss_icons/light/rc_light/checkbox_checked_disabled.png"); +} + +QCheckBox::indicator:indeterminate { + image: url(":/qss_icons/light/rc_light/checkbox_indeterminate.png"); +} + +QCheckBox::indicator:indeterminate:disabled { + image: url(":/qss_icons/light/rc_light/checkbox_indeterminate_disabled.png"); +} + +QCheckBox::indicator:indeterminate:focus, QCheckBox::indicator:indeterminate:hover, QCheckBox::indicator:indeterminate:pressed { + image: url(":/qss_icons/light/rc_light/checkbox_indeterminate_focus.png"); +} + +/* QGroupBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qgroupbox + +--------------------------------------------------------------------------- */ +QGroupBox { + font-weight: bold; + border: 1px solid #C9CDD0; + border-radius: 4px; + padding: 2px; + margin-top: 6px; + margin-bottom: 4px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 4px; + padding-left: 2px; + padding-right: 4px; + padding-top: -4px; +} + +QGroupBox::indicator { + margin-left: 2px; + margin-top: 2px; + padding: 0; + height: 14px; + width: 14px; +} + +QGroupBox::indicator:unchecked { + border: none; + image: url(":/qss_icons/light/rc_light/checkbox_unchecked.png"); +} + +QGroupBox::indicator:unchecked:hover, QGroupBox::indicator:unchecked:focus, QGroupBox::indicator:unchecked:pressed { + border: none; + image: url(":/qss_icons/light/rc_light/checkbox_unchecked_focus.png"); +} + +QGroupBox::indicator:unchecked:disabled { + image: url(":/qss_icons/light/rc_light/checkbox_unchecked_disabled.png"); +} + +QGroupBox::indicator:checked { + border: none; + image: url(":/qss_icons/light/rc_light/checkbox_checked.png"); +} + +QGroupBox::indicator:checked:hover, QGroupBox::indicator:checked:focus, QGroupBox::indicator:checked:pressed { + border: none; + image: url(":/qss_icons/light/rc_light/checkbox_checked_focus.png"); +} + +QGroupBox::indicator:checked:disabled { + image: url(":/qss_icons/light/rc_light/checkbox_checked_disabled.png"); +} + +/* QRadioButton ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton + +--------------------------------------------------------------------------- */ +QRadioButton { + background-color: #FAFAFA; + color: #19232D; + spacing: 4px; + padding-top: 4px; + padding-bottom: 4px; + border: none; + outline: none; +} + +QRadioButton:focus { + border: none; +} + +QRadioButton:disabled { + background-color: #FAFAFA; + color: #788D9C; + border: none; + outline: none; +} + +QRadioButton QWidget { + background-color: #FAFAFA; + color: #19232D; + spacing: 0px; + padding: 0px; + outline: none; + border: none; +} + +QRadioButton::indicator { + border: none; + outline: none; + margin-left: 2px; + height: 14px; + width: 14px; +} + +QRadioButton::indicator:unchecked { + image: url(":/qss_icons/light/rc_light/radio_unchecked.png"); +} + +QRadioButton::indicator:unchecked:hover, QRadioButton::indicator:unchecked:focus, QRadioButton::indicator:unchecked:pressed { + border: none; + outline: none; + image: url(":/qss_icons/light/rc_light/radio_unchecked_focus.png"); +} + +QRadioButton::indicator:unchecked:disabled { + image: url(":/qss_icons/light/rc_light/radio_unchecked_disabled.png"); +} + +QRadioButton::indicator:checked { + border: none; + outline: none; + image: url(":/qss_icons/light/rc_light/radio_checked.png"); +} + +QRadioButton::indicator:checked:hover, QRadioButton::indicator:checked:focus, QRadioButton::indicator:checked:pressed { + border: none; + outline: none; + image: url(":/qss_icons/light/rc_light/radio_checked_focus.png"); +} + +QRadioButton::indicator:checked:disabled { + outline: none; + image: url(":/qss_icons/light/rc_light/radio_checked_disabled.png"); +} + +/* QMenuBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenubar + +--------------------------------------------------------------------------- */ +QMenuBar { + background-color: #C9CDD0; + padding: 2px; + border: 1px solid #FAFAFA; + color: #19232D; + selection-background-color: #73C7FF; +} + +QMenuBar:focus { + border: 1px solid #9FCBFF; +} + +QMenuBar::item { + background: transparent; + padding: 4px; +} + +QMenuBar::item:selected { + padding: 4px; + background: transparent; + border: 0px solid #C9CDD0; + background-color: #73C7FF; +} + +QMenuBar::item:pressed { + padding: 4px; + border: 0px solid #C9CDD0; + background-color: #73C7FF; + color: #19232D; + margin-bottom: 0px; + padding-bottom: 0px; +} + +/* QMenu ------------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qmenu + +--------------------------------------------------------------------------- */ +QMenu { + border: 0px solid #C9CDD0; + color: #19232D; + margin: 0px; + background-color: #CED1D4; + selection-background-color: #73C7FF; +} + +QMenu::separator { + height: 1px; + background-color: #ACB1B6; + color: #19232D; +} + +QMenu::item { + background-color: #CED1D4; + padding: 4px 24px 4px 28px; + /* Reserve space for selection border */ + border: 1px transparent #C9CDD0; +} + +QMenu::item:selected { + color: #19232D; + background-color: #73C7FF; +} + +QMenu::item:pressed { + background-color: #73C7FF; +} + +QMenu::icon { + padding-left: 10px; + width: 14px; + height: 14px; +} + +QMenu::indicator { + padding-left: 8px; + width: 12px; + height: 12px; + /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */ + /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */ +} + +QMenu::indicator:non-exclusive:unchecked { + image: url(":/qss_icons/light/rc_light/checkbox_unchecked.png"); +} + +QMenu::indicator:non-exclusive:unchecked:hover, QMenu::indicator:non-exclusive:unchecked:focus, QMenu::indicator:non-exclusive:unchecked:pressed { + border: none; + image: url(":/qss_icons/light/rc_light/checkbox_unchecked_focus.png"); +} + +QMenu::indicator:non-exclusive:unchecked:disabled { + image: url(":/qss_icons/light/rc_light/checkbox_unchecked_disabled.png"); +} + +QMenu::indicator:non-exclusive:checked { + image: url(":/qss_icons/light/rc_light/checkbox_checked.png"); +} + +QMenu::indicator:non-exclusive:checked:hover, QMenu::indicator:non-exclusive:checked:focus, QMenu::indicator:non-exclusive:checked:pressed { + border: none; + image: url(":/qss_icons/light/rc_light/checkbox_checked_focus.png"); +} + +QMenu::indicator:non-exclusive:checked:disabled { + image: url(":/qss_icons/light/rc_light/checkbox_checked_disabled.png"); +} + +QMenu::indicator:non-exclusive:indeterminate { + image: url(":/qss_icons/light/rc_light/checkbox_indeterminate.png"); +} + +QMenu::indicator:non-exclusive:indeterminate:disabled { + image: url(":/qss_icons/light/rc_light/checkbox_indeterminate_disabled.png"); +} + +QMenu::indicator:non-exclusive:indeterminate:focus, QMenu::indicator:non-exclusive:indeterminate:hover, QMenu::indicator:non-exclusive:indeterminate:pressed { + image: url(":/qss_icons/light/rc_light/checkbox_indeterminate_focus.png"); +} + +QMenu::indicator:exclusive:unchecked { + image: url(":/qss_icons/light/rc_light/radio_unchecked.png"); +} + +QMenu::indicator:exclusive:unchecked:hover, QMenu::indicator:exclusive:unchecked:focus, QMenu::indicator:exclusive:unchecked:pressed { + border: none; + outline: none; + image: url(":/qss_icons/light/rc_light/radio_unchecked_focus.png"); +} + +QMenu::indicator:exclusive:unchecked:disabled { + image: url(":/qss_icons/light/rc_light/radio_unchecked_disabled.png"); +} + +QMenu::indicator:exclusive:checked { + border: none; + outline: none; + image: url(":/qss_icons/light/rc_light/radio_checked.png"); +} + +QMenu::indicator:exclusive:checked:hover, QMenu::indicator:exclusive:checked:focus, QMenu::indicator:exclusive:checked:pressed { + border: none; + outline: none; + image: url(":/qss_icons/light/rc_light/radio_checked_focus.png"); +} + +QMenu::indicator:exclusive:checked:disabled { + outline: none; + image: url(":/qss_icons/light/rc_light/radio_checked_disabled.png"); +} + +QMenu::right-arrow { + margin: 5px; + padding-left: 12px; + image: url(":/qss_icons/light/rc_light/arrow_right.png"); + height: 12px; + width: 12px; +} + +/* QAbstractItemView ------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QAbstractItemView { + alternate-background-color: #FAFAFA; + color: #19232D; + border: 1px solid #C9CDD0; + border-radius: 4px; +} + +QAbstractItemView QLineEdit { + padding: 2px; +} + +/* QAbstractScrollArea ---------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QAbstractScrollArea { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + border-radius: 4px; + /* fix #159 */ + padding: 2px; + /* remove min-height to fix #244 */ + color: #19232D; +} + +QAbstractScrollArea:disabled { + color: #788D9C; +} + +/* QScrollArea ------------------------------------------------------------ + +--------------------------------------------------------------------------- */ +QScrollArea QWidget QWidget:disabled { + background-color: #FAFAFA; +} + +/* QScrollBar ------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qscrollbar + +--------------------------------------------------------------------------- */ +QScrollBar:horizontal { + height: 16px; + margin: 2px 16px 2px 16px; + border: 1px solid #C9CDD0; + border-radius: 4px; + background-color: #FAFAFA; +} + +QScrollBar:vertical { + background-color: #FAFAFA; + width: 16px; + margin: 16px 2px 16px 2px; + border: 1px solid #C9CDD0; + border-radius: 4px; +} + +QScrollBar::handle:horizontal { + background-color: #ACB1B6; + border: 1px solid #C9CDD0; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:hover { + background-color: #9FCBFF; + border: #9FCBFF; + border-radius: 4px; + min-width: 8px; +} + +QScrollBar::handle:horizontal:focus { + border: 1px solid #73C7FF; +} + +QScrollBar::handle:vertical { + background-color: #ACB1B6; + border: 1px solid #C9CDD0; + min-height: 8px; + border-radius: 4px; +} + +QScrollBar::handle:vertical:hover { + background-color: #9FCBFF; + border: #9FCBFF; + border-radius: 4px; + min-height: 8px; +} + +QScrollBar::handle:vertical:focus { + border: 1px solid #73C7FF; +} + +QScrollBar::add-line:horizontal { + margin: 0px 0px 0px 0px; + border-image: url(":/qss_icons/light/rc_light/arrow_right_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:horizontal:hover, QScrollBar::add-line:horizontal:on { + border-image: url(":/qss_icons/light/rc_light/arrow_right.png"); + height: 12px; + width: 12px; + subcontrol-position: right; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical { + margin: 3px 0px 3px 0px; + border-image: url(":/qss_icons/light/rc_light/arrow_down_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::add-line:vertical:hover, QScrollBar::add-line:vertical:on { + border-image: url(":/qss_icons/light/rc_light/arrow_down.png"); + height: 12px; + width: 12px; + subcontrol-position: bottom; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal { + margin: 0px 3px 0px 3px; + border-image: url(":/qss_icons/light/rc_light/arrow_left_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:horizontal:hover, QScrollBar::sub-line:horizontal:on { + border-image: url(":/qss_icons/light/rc_light/arrow_left.png"); + height: 12px; + width: 12px; + subcontrol-position: left; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical { + margin: 3px 0px 3px 0px; + border-image: url(":/qss_icons/light/rc_light/arrow_up_disabled.png"); + height: 12px; + width: 12px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::sub-line:vertical:hover, QScrollBar::sub-line:vertical:on { + border-image: url(":/qss_icons/light/rc_light/arrow_up.png"); + height: 12px; + width: 12px; + subcontrol-position: top; + subcontrol-origin: margin; +} + +QScrollBar::up-arrow:horizontal, QScrollBar::down-arrow:horizontal { + background: none; +} + +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + background: none; +} + +QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { + background: none; +} + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; +} + +/* QTextEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-specific-widgets + +--------------------------------------------------------------------------- */ +QTextEdit { + background-color: #FAFAFA; + color: #19232D; + border-radius: 4px; + border: 1px solid #C9CDD0; +} + +QTextEdit:focus { + border: 1px solid #73C7FF; +} + +QTextEdit:selected { + background: #9FCBFF; + color: #C9CDD0; +} + +/* QPlainTextEdit --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QPlainTextEdit { + background-color: #FAFAFA; + color: #19232D; + border-radius: 4px; + border: 1px solid #C9CDD0; +} + +QPlainTextEdit:focus { + border: 1px solid #73C7FF; +} + +QPlainTextEdit:selected { + background: #9FCBFF; + color: #C9CDD0; +} + +/* QSizeGrip -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsizegrip + +--------------------------------------------------------------------------- */ +QSizeGrip { + background: transparent; + width: 12px; + height: 12px; + image: url(":/qss_icons/light/rc_light/window_grip.png"); +} + +/* QStackedWidget --------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QStackedWidget { + padding: 2px; + border: 1px solid #C9CDD0; + border: 1px solid #FAFAFA; +} + +/* QToolBar --------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbar + +--------------------------------------------------------------------------- */ +QToolBar { + background-color: #C9CDD0; + border-bottom: 1px solid #FAFAFA; + padding: 1px; + font-weight: bold; + spacing: 2px; +} + +QToolBar:disabled { + /* Fixes #272 */ + background-color: #C9CDD0; +} + +QToolBar::handle:horizontal { + width: 16px; + image: url(":/qss_icons/light/rc_light/toolbar_move_horizontal.png"); +} + +QToolBar::handle:vertical { + height: 16px; + image: url(":/qss_icons/light/rc_light/toolbar_move_vertical.png"); +} + +QToolBar::separator:horizontal { + width: 16px; + image: url(":/qss_icons/light/rc_light/toolbar_separator_horizontal.png"); +} + +QToolBar::separator:vertical { + height: 16px; + image: url(":/qss_icons/light/rc_light/toolbar_separator_vertical.png"); +} + +QToolButton#qt_toolbar_ext_button { + background: #C9CDD0; + border: 0px; + color: #19232D; + image: url(":/qss_icons/light/rc_light/arrow_right.png"); +} + +/* QAbstractSpinBox ------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractSpinBox { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + color: #19232D; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + border-radius: 4px; + /* min-width: 5px; removed to fix 109 */ +} + +QAbstractSpinBox:up-button { + background-color: transparent #FAFAFA; + subcontrol-origin: border; + subcontrol-position: top right; + border-left: 1px solid #C9CDD0; + border-bottom: 1px solid #C9CDD0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin: 1px; + width: 12px; + margin-bottom: -1px; +} + +QAbstractSpinBox::up-arrow, QAbstractSpinBox::up-arrow:disabled, QAbstractSpinBox::up-arrow:off { + image: url(":/qss_icons/light/rc_light/arrow_up_disabled.png"); + height: 8px; + width: 8px; +} + +QAbstractSpinBox::up-arrow:hover { + image: url(":/qss_icons/light/rc_light/arrow_up.png"); +} + +QAbstractSpinBox:down-button { + background-color: transparent #FAFAFA; + subcontrol-origin: border; + subcontrol-position: bottom right; + border-left: 1px solid #C9CDD0; + border-top: 1px solid #C9CDD0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + margin: 1px; + width: 12px; + margin-top: -1px; +} + +QAbstractSpinBox::down-arrow, QAbstractSpinBox::down-arrow:disabled, QAbstractSpinBox::down-arrow:off { + image: url(":/qss_icons/light/rc_light/arrow_down_disabled.png"); + height: 8px; + width: 8px; +} + +QAbstractSpinBox::down-arrow:hover { + image: url(":/qss_icons/light/rc_light/arrow_down.png"); +} + +QAbstractSpinBox:hover { + border: 1px solid #9FCBFF; + color: #19232D; +} + +QAbstractSpinBox:focus { + border: 1px solid #73C7FF; +} + +QAbstractSpinBox:selected { + background: #9FCBFF; + color: #C9CDD0; +} + +/* ------------------------------------------------------------------------ */ +/* DISPLAYS --------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QLabel ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe + +--------------------------------------------------------------------------- */ +QLabel { + background-color: #FAFAFA; + border: 0px solid #C9CDD0; + padding: 2px; + margin: 0px; + color: #19232D; +} + +QLabel:disabled { + background-color: #FAFAFA; + border: 0px solid #C9CDD0; + color: #788D9C; +} + +/* QTextBrowser ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qabstractscrollarea + +--------------------------------------------------------------------------- */ +QTextBrowser { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + color: #19232D; + border-radius: 4px; +} + +QTextBrowser:disabled { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + color: #788D9C; + border-radius: 4px; +} + +QTextBrowser:hover, QTextBrowser:!hover, QTextBrowser:selected, QTextBrowser:pressed { + border: 1px solid #C9CDD0; +} + +/* QGraphicsView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QGraphicsView { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + color: #19232D; + border-radius: 4px; +} + +QGraphicsView:disabled { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + color: #788D9C; + border-radius: 4px; +} + +QGraphicsView:hover, QGraphicsView:!hover, QGraphicsView:selected, QGraphicsView:pressed { + border: 1px solid #C9CDD0; +} + +/* QCalendarWidget -------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCalendarWidget { + border: 1px solid #C9CDD0; + border-radius: 4px; +} + +QCalendarWidget:disabled { + background-color: #FAFAFA; + color: #788D9C; +} + +/* QLCDNumber ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QLCDNumber { + background-color: #FAFAFA; + color: #19232D; +} + +QLCDNumber:disabled { + background-color: #FAFAFA; + color: #788D9C; +} + +/* QProgressBar ----------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qprogressbar + +--------------------------------------------------------------------------- */ +QProgressBar { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + color: #19232D; + border-radius: 4px; + text-align: center; +} + +QProgressBar:disabled { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + color: #788D9C; + border-radius: 4px; + text-align: center; +} + +QProgressBar::chunk { + background-color: #9FCBFF; + color: #FAFAFA; + border-radius: 4px; +} + +QProgressBar::chunk:disabled { + background-color: #DAEDFF; + color: #788D9C; + border-radius: 4px; +} + +/* ------------------------------------------------------------------------ */ +/* BUTTONS ---------------------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QPushButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qpushbutton + +--------------------------------------------------------------------------- */ +QPushButton { + background-color: #C9CDD0; + color: #19232D; + border-radius: 4px; + padding: 2px; + outline: none; + border: none; +} + +QPushButton:disabled { + background-color: #C9CDD0; + color: #788D9C; + border-radius: 4px; + padding: 2px; +} + +QPushButton:checked { + background-color: #ACB1B6; + border-radius: 4px; + padding: 2px; + outline: none; +} + +QPushButton:checked:disabled { + background-color: #ACB1B6; + color: #788D9C; + border-radius: 4px; + padding: 2px; + outline: none; +} + +QPushButton:checked:selected { + background: #ACB1B6; +} + +QPushButton:hover { + background-color: #B9BDC1; + color: #19232D; +} + +QPushButton:pressed { + background-color: #ACB1B6; +} + +QPushButton:selected { + background: #ACB1B6; + color: #19232D; +} + +QPushButton::menu-indicator { + subcontrol-origin: padding; + subcontrol-position: bottom right; + bottom: 4px; +} + +QDialogButtonBox QPushButton { + /* Issue #194 #248 - Special case of QPushButton inside dialogs, for better UI */ + min-width: 80px; +} + +/* QToolButton ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbutton + +--------------------------------------------------------------------------- */ +QToolButton { + background-color: #C9CDD0; + color: #19232D; + border-radius: 4px; + padding: 2px; + outline: none; + border: none; + /* The subcontrols below are used only in the DelayedPopup mode */ + /* The subcontrols below are used only in the MenuButtonPopup mode */ + /* The subcontrol below is used only in the InstantPopup or DelayedPopup mode */ +} + +QToolButton:disabled { + background-color: #C9CDD0; + color: #788D9C; + border-radius: 4px; + padding: 2px; +} + +QToolButton:checked { + background-color: #ACB1B6; + border-radius: 4px; + padding: 2px; + outline: none; +} + +QToolButton:checked:disabled { + background-color: #ACB1B6; + color: #788D9C; + border-radius: 4px; + padding: 2px; + outline: none; +} + +QToolButton:checked:hover { + background-color: #B9BDC1; + color: #19232D; +} + +QToolButton:checked:pressed { + background-color: #ACB1B6; +} + +QToolButton:checked:selected { + background: #ACB1B6; + color: #19232D; +} + +QToolButton:hover { + background-color: #B9BDC1; + color: #19232D; +} + +QToolButton:pressed { + background-color: #ACB1B6; +} + +QToolButton:selected { + background: #ACB1B6; + color: #19232D; +} + +QToolButton[popupMode="0"] { + /* Only for DelayedPopup */ + padding-right: 2px; +} + +QToolButton[popupMode="1"] { + /* Only for MenuButtonPopup */ + padding-right: 20px; +} + +QToolButton[popupMode="1"]::menu-button { + border: none; +} + +QToolButton[popupMode="1"]::menu-button:hover { + border: none; + border-left: 1px solid #C9CDD0; + border-radius: 0; +} + +QToolButton[popupMode="2"] { + /* Only for InstantPopup */ + padding-right: 2px; +} + +QToolButton::menu-button { + padding: 2px; + border-radius: 4px; + width: 12px; + border: none; + outline: none; +} + +QToolButton::menu-button:hover { + border: 1px solid #9FCBFF; +} + +QToolButton::menu-button:checked:hover { + border: 1px solid #9FCBFF; +} + +QToolButton::menu-indicator { + image: url(":/qss_icons/light/rc_light/arrow_down.png"); + height: 8px; + width: 8px; + top: 0; + /* Exclude a shift for better image */ + left: -2px; + /* Shift it a bit */ +} + +QToolButton::menu-arrow { + image: url(":/qss_icons/light/rc_light/arrow_down.png"); + height: 8px; + width: 8px; +} + +QToolButton::menu-arrow:hover { + image: url(":/qss_icons/light/rc_light/arrow_down_focus.png"); +} + +/* QCommandLinkButton ----------------------------------------------------- + +--------------------------------------------------------------------------- */ +QCommandLinkButton { + background-color: transparent; + border: 1px solid #C9CDD0; + color: #19232D; + border-radius: 4px; + padding: 0px; + margin: 0px; +} + +QCommandLinkButton:disabled { + background-color: transparent; + color: #788D9C; +} + +/* ------------------------------------------------------------------------ */ +/* INPUTS - NO FIELDS ----------------------------------------------------- */ +/* ------------------------------------------------------------------------ */ +/* QComboBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox + +--------------------------------------------------------------------------- */ +QComboBox { + border: 1px solid #C9CDD0; + border-radius: 4px; + selection-background-color: #9FCBFF; + padding-left: 4px; + padding-right: 4px; + /* padding-right = 36; 4 + 16*2 See scrollbar size */ + /* changed to 4px to fix #239 */ + /* Fixes #103, #111 */ + min-height: 1.5em; + /* padding-top: 2px; removed to fix #132 */ + /* padding-bottom: 2px; removed to fix #132 */ + /* min-width: 75px; removed to fix #109 */ + /* Needed to remove indicator - fix #132 */ +} + +QComboBox QAbstractItemView { + border: 1px solid #C9CDD0; + border-radius: 0; + background-color: #FAFAFA; + selection-background-color: #9FCBFF; +} + +QComboBox QAbstractItemView:hover { + background-color: #FAFAFA; + color: #19232D; +} + +QComboBox QAbstractItemView:selected { + background: #9FCBFF; + color: #C9CDD0; +} + +QComboBox QAbstractItemView:alternate { + background: #FAFAFA; +} + +QComboBox:disabled { + background-color: #FAFAFA; + color: #788D9C; +} + +QComboBox:hover { + border: 1px solid #9FCBFF; +} + +QComboBox:focus { + border: 1px solid #73C7FF; +} + +QComboBox:on { + selection-background-color: #9FCBFF; +} + +QComboBox::indicator { + border: none; + border-radius: 0; + background-color: transparent; + selection-background-color: transparent; + color: transparent; + selection-color: transparent; + /* Needed to remove indicator - fix #132 */ +} + +QComboBox::indicator:alternate { + background: #FAFAFA; +} + +QComboBox::item:alternate { + background: #FAFAFA; +} + +QComboBox::item:checked { + font-weight: bold; +} + +QComboBox::item:selected { + border: 0px solid transparent; +} + +QComboBox::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #C9CDD0; +} + +QComboBox::down-arrow { + image: url(":/qss_icons/light/rc_light/arrow_down_disabled.png"); + height: 8px; + width: 8px; +} + +QComboBox::down-arrow:on, QComboBox::down-arrow:hover, QComboBox::down-arrow:focus { + image: url(":/qss_icons/light/rc_light/arrow_down.png"); +} + +/* QSlider ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qslider + +--------------------------------------------------------------------------- */ +QSlider:disabled { + background: #FAFAFA; +} + +QSlider:focus { + border: none; +} + +QSlider::groove:horizontal { + background: #C9CDD0; + border: 1px solid #C9CDD0; + height: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::groove:vertical { + background: #C9CDD0; + border: 1px solid #C9CDD0; + width: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::add-page:vertical { + background: #9FCBFF; + border: 1px solid #C9CDD0; + width: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::add-page:vertical :disabled { + background: #DAEDFF; +} + +QSlider::sub-page:horizontal { + background: #9FCBFF; + border: 1px solid #C9CDD0; + height: 4px; + margin: 0px; + border-radius: 4px; +} + +QSlider::sub-page:horizontal:disabled { + background: #DAEDFF; +} + +QSlider::handle:horizontal { + background: #788D9C; + border: 1px solid #C9CDD0; + width: 8px; + height: 8px; + margin: -8px 0px; + border-radius: 4px; +} + +QSlider::handle:horizontal:hover { + background: #9FCBFF; + border: 1px solid #9FCBFF; +} + +QSlider::handle:horizontal:focus { + border: 1px solid #73C7FF; +} + +QSlider::handle:vertical { + background: #788D9C; + border: 1px solid #C9CDD0; + width: 8px; + height: 8px; + margin: 0 -8px; + border-radius: 4px; +} + +QSlider::handle:vertical:hover { + background: #9FCBFF; + border: 1px solid #9FCBFF; +} + +QSlider::handle:vertical:focus { + border: 1px solid #73C7FF; +} + +/* QLineEdit -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlineedit + +--------------------------------------------------------------------------- */ +QLineEdit { + background-color: #FAFAFA; + padding-top: 2px; + /* This QLineEdit fix 103, 111 */ + padding-bottom: 2px; + /* This QLineEdit fix 103, 111 */ + padding-left: 4px; + padding-right: 4px; + border-style: solid; + border: 1px solid #C9CDD0; + border-radius: 4px; + color: #19232D; +} + +QLineEdit:disabled { + background-color: #FAFAFA; + color: #788D9C; +} + +QLineEdit:hover { + border: 1px solid #9FCBFF; + color: #19232D; +} + +QLineEdit:focus { + border: 1px solid #73C7FF; +} + +QLineEdit:selected { + background-color: #9FCBFF; + color: #C9CDD0; +} + +/* QTabWiget -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabWidget { + padding: 2px; + selection-background-color: #C9CDD0; +} + +QTabWidget QWidget { + /* Fixes #189 */ + border-radius: 4px; +} + +QTabWidget::pane { + border: 1px solid #C9CDD0; + border-radius: 4px; + margin: 0px; + /* Fixes double border inside pane with pyqt5 */ + padding: 0px; +} + +QTabWidget::pane:selected { + background-color: #C9CDD0; + border: 1px solid #9FCBFF; +} + +/* QTabBar ---------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtabwidget-and-qtabbar + +--------------------------------------------------------------------------- */ +QTabBar, QDockWidget QTabBar { + qproperty-drawBase: 0; + border-radius: 4px; + margin: 0px; + padding: 2px; + border: 0; + /* left: 5px; move to the right by 5px - removed for fix */ +} + +QTabBar::close-button, QDockWidget QTabBar::close-button { + border: 0; + margin: 0; + padding: 4px; + image: url(":/qss_icons/light/rc_light/window_close.png"); +} + +QTabBar::close-button:hover, QDockWidget QTabBar::close-button:hover { + image: url(":/qss_icons/light/rc_light/window_close_focus.png"); +} + +QTabBar::close-button:pressed, QDockWidget QTabBar::close-button:pressed { + image: url(":/qss_icons/light/rc_light/window_close_pressed.png"); +} + +QTabBar::tab, QDockWidget QTabBar::tab { + /* !selected and disabled ----------------------------------------- */ + /* selected ------------------------------------------------------- */ +} + +QTabBar::tab:top:selected:disabled, QDockWidget QTabBar::tab:top:selected:disabled { + border-bottom: 3px solid #DAEDFF; + color: #788D9C; + background-color: #C9CDD0; +} + +QTabBar::tab:bottom:selected:disabled, QDockWidget QTabBar::tab:bottom:selected:disabled { + border-top: 3px solid #DAEDFF; + color: #788D9C; + background-color: #C9CDD0; +} + +QTabBar::tab:left:selected:disabled, QDockWidget QTabBar::tab:left:selected:disabled { + border-right: 3px solid #DAEDFF; + color: #788D9C; + background-color: #C9CDD0; +} + +QTabBar::tab:right:selected:disabled, QDockWidget QTabBar::tab:right:selected:disabled { + border-left: 3px solid #DAEDFF; + color: #788D9C; + background-color: #C9CDD0; +} + +QTabBar::tab:top:!selected:disabled, QDockWidget QTabBar::tab:top:!selected:disabled { + border-bottom: 3px solid #FAFAFA; + color: #788D9C; + background-color: #FAFAFA; +} + +QTabBar::tab:bottom:!selected:disabled, QDockWidget QTabBar::tab:bottom:!selected:disabled { + border-top: 3px solid #FAFAFA; + color: #788D9C; + background-color: #FAFAFA; +} + +QTabBar::tab:left:!selected:disabled, QDockWidget QTabBar::tab:left:!selected:disabled { + border-right: 3px solid #FAFAFA; + color: #788D9C; + background-color: #FAFAFA; +} + +QTabBar::tab:right:!selected:disabled, QDockWidget QTabBar::tab:right:!selected:disabled { + border-left: 3px solid #FAFAFA; + color: #788D9C; + background-color: #FAFAFA; +} + +QTabBar::tab:top:!selected, QDockWidget QTabBar::tab:top:!selected { + border-bottom: 2px solid #FAFAFA; + margin-top: 2px; +} + +QTabBar::tab:bottom:!selected, QDockWidget QTabBar::tab:bottom:!selected { + border-top: 2px solid #FAFAFA; + margin-bottom: 2px; +} + +QTabBar::tab:left:!selected, QDockWidget QTabBar::tab:left:!selected { + border-left: 2px solid #FAFAFA; + margin-right: 2px; +} + +QTabBar::tab:right:!selected, QDockWidget QTabBar::tab:right:!selected { + border-right: 2px solid #FAFAFA; + margin-left: 2px; +} + +QTabBar::tab:top, QDockWidget QTabBar::tab:top { + background-color: #C9CDD0; + margin-left: 2px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + min-width: 5px; + border-bottom: 3px solid #C9CDD0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QTabBar::tab:top:selected, QDockWidget QTabBar::tab:top:selected { + background-color: #B9BDC1; + border-bottom: 3px solid #37AEFE; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QTabBar::tab:top:!selected:hover, QDockWidget QTabBar::tab:top:!selected:hover { + border: 1px solid #73C7FF; + border-bottom: 3px solid #73C7FF; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:bottom, QDockWidget QTabBar::tab:bottom { + border-top: 3px solid #C9CDD0; + background-color: #C9CDD0; + margin-left: 2px; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + min-width: 5px; +} + +QTabBar::tab:bottom:selected, QDockWidget QTabBar::tab:bottom:selected { + background-color: #B9BDC1; + border-top: 3px solid #37AEFE; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +QTabBar::tab:bottom:!selected:hover, QDockWidget QTabBar::tab:bottom:!selected:hover { + border: 1px solid #73C7FF; + border-top: 3px solid #73C7FF; + /* Fixes spyder-ide/spyder#9766 and #243 */ + padding-left: 3px; + padding-right: 3px; +} + +QTabBar::tab:left, QDockWidget QTabBar::tab:left { + background-color: #C9CDD0; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:left:selected, QDockWidget QTabBar::tab:left:selected { + background-color: #B9BDC1; + border-right: 3px solid #37AEFE; +} + +QTabBar::tab:left:!selected:hover, QDockWidget QTabBar::tab:left:!selected:hover { + border: 1px solid #73C7FF; + border-right: 3px solid #73C7FF; + /* Fixes different behavior #271 */ + margin-right: 0px; + padding-right: -1px; +} + +QTabBar::tab:right, QDockWidget QTabBar::tab:right { + background-color: #C9CDD0; + margin-top: 2px; + padding-left: 2px; + padding-right: 2px; + padding-top: 4px; + padding-bottom: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + min-height: 5px; +} + +QTabBar::tab:right:selected, QDockWidget QTabBar::tab:right:selected { + background-color: #B9BDC1; + border-left: 3px solid #37AEFE; +} + +QTabBar::tab:right:!selected:hover, QDockWidget QTabBar::tab:right:!selected:hover { + border: 1px solid #73C7FF; + border-left: 3px solid #73C7FF; + /* Fixes different behavior #271 */ + margin-left: 0px; + padding-left: 0px; +} + +QTabBar QToolButton, QDockWidget QTabBar QToolButton { + /* Fixes #136 */ + background-color: #C9CDD0; + height: 12px; + width: 12px; +} + +QTabBar QToolButton:pressed, QDockWidget QTabBar QToolButton:pressed { + background-color: #C9CDD0; +} + +QTabBar QToolButton:pressed:hover, QDockWidget QTabBar QToolButton:pressed:hover { + border: 1px solid #9FCBFF; +} + +QTabBar QToolButton::left-arrow:enabled, QDockWidget QTabBar QToolButton::left-arrow:enabled { + image: url(":/qss_icons/light/rc_light/arrow_left.png"); +} + +QTabBar QToolButton::left-arrow:disabled, QDockWidget QTabBar QToolButton::left-arrow:disabled { + image: url(":/qss_icons/light/rc_light/arrow_left_disabled.png"); +} + +QTabBar QToolButton::right-arrow:enabled, QDockWidget QTabBar QToolButton::right-arrow:enabled { + image: url(":/qss_icons/light/rc_light/arrow_right.png"); +} + +QTabBar QToolButton::right-arrow:disabled, QDockWidget QTabBar QToolButton::right-arrow:disabled { + image: url(":/qss_icons/light/rc_light/arrow_right_disabled.png"); +} + +/* QDockWiget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QDockWidget { + outline: 1px solid #C9CDD0; + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + border-radius: 4px; + titlebar-close-icon: url(":/qss_icons/light/rc_light/transparent.png"); + titlebar-normal-icon: url(":/qss_icons/light/rc_light/transparent.png"); +} + +QDockWidget::title { + /* Better size for title bar */ + padding: 3px; + spacing: 4px; + border: none; + background-color: #C9CDD0; +} + +QDockWidget::close-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(":/qss_icons/light/rc_light/window_close.png"); +} + +QDockWidget::close-button:hover { + image: url(":/qss_icons/light/rc_light/window_close_focus.png"); +} + +QDockWidget::close-button:pressed { + image: url(":/qss_icons/light/rc_light/window_close_pressed.png"); +} + +QDockWidget::float-button { + icon-size: 12px; + border: none; + background: transparent; + background-image: transparent; + border: 0; + margin: 0; + padding: 0; + image: url(":/qss_icons/light/rc_light/window_undock.png"); +} + +QDockWidget::float-button:hover { + image: url(":/qss_icons/light/rc_light/window_undock_focus.png"); +} + +QDockWidget::float-button:pressed { + image: url(":/qss_icons/light/rc_light/window_undock_pressed.png"); +} + +/* QTreeView QListView QTableView ----------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qlistview +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtableview + +--------------------------------------------------------------------------- */ +QTreeView:branch:selected, QTreeView:branch:hover { + background: url(":/qss_icons/light/rc_light/transparent.png"); +} + +QTreeView:branch:has-siblings:!adjoins-item { + border-image: url(":/qss_icons/light/rc_light/branch_line.png") 0; +} + +QTreeView:branch:has-siblings:adjoins-item { + border-image: url(":/qss_icons/light/rc_light/branch_more.png") 0; +} + +QTreeView:branch:!has-children:!has-siblings:adjoins-item { + border-image: url(":/qss_icons/light/rc_light/branch_end.png") 0; +} + +QTreeView:branch:has-children:!has-siblings:closed, QTreeView:branch:closed:has-children:has-siblings { + border-image: none; + image: url(":/qss_icons/light/rc_light/branch_closed.png"); +} + +QTreeView:branch:open:has-children:!has-siblings, QTreeView:branch:open:has-children:has-siblings { + border-image: none; + image: url(":/qss_icons/light/rc_light/branch_open.png"); +} + +QTreeView:branch:has-children:!has-siblings:closed:hover, QTreeView:branch:closed:has-children:has-siblings:hover { + image: url(":/qss_icons/light/rc_light/branch_closed_focus.png"); +} + +QTreeView:branch:open:has-children:!has-siblings:hover, QTreeView:branch:open:has-children:has-siblings:hover { + image: url(":/qss_icons/light/rc_light/branch_open_focus.png"); +} + +QTreeView::indicator:checked, +QListView::indicator:checked, +QTableView::indicator:checked, +QColumnView::indicator:checked { + image: url(":/qss_icons/light/rc_light/checkbox_checked.png"); +} + +QTreeView::indicator:checked:hover, QTreeView::indicator:checked:focus, QTreeView::indicator:checked:pressed, +QListView::indicator:checked:hover, +QListView::indicator:checked:focus, +QListView::indicator:checked:pressed, +QTableView::indicator:checked:hover, +QTableView::indicator:checked:focus, +QTableView::indicator:checked:pressed, +QColumnView::indicator:checked:hover, +QColumnView::indicator:checked:focus, +QColumnView::indicator:checked:pressed { + image: url(":/qss_icons/light/rc_light/checkbox_checked_focus.png"); +} + +QTreeView::indicator:unchecked, +QListView::indicator:unchecked, +QTableView::indicator:unchecked, +QColumnView::indicator:unchecked { + image: url(":/qss_icons/light/rc_light/checkbox_unchecked.png"); +} + +QTreeView::indicator:unchecked:hover, QTreeView::indicator:unchecked:focus, QTreeView::indicator:unchecked:pressed, +QListView::indicator:unchecked:hover, +QListView::indicator:unchecked:focus, +QListView::indicator:unchecked:pressed, +QTableView::indicator:unchecked:hover, +QTableView::indicator:unchecked:focus, +QTableView::indicator:unchecked:pressed, +QColumnView::indicator:unchecked:hover, +QColumnView::indicator:unchecked:focus, +QColumnView::indicator:unchecked:pressed { + image: url(":/qss_icons/light/rc_light/checkbox_unchecked_focus.png"); +} + +QTreeView::indicator:indeterminate, +QListView::indicator:indeterminate, +QTableView::indicator:indeterminate, +QColumnView::indicator:indeterminate { + image: url(":/qss_icons/light/rc_light/checkbox_indeterminate.png"); +} + +QTreeView::indicator:indeterminate:hover, QTreeView::indicator:indeterminate:focus, QTreeView::indicator:indeterminate:pressed, +QListView::indicator:indeterminate:hover, +QListView::indicator:indeterminate:focus, +QListView::indicator:indeterminate:pressed, +QTableView::indicator:indeterminate:hover, +QTableView::indicator:indeterminate:focus, +QTableView::indicator:indeterminate:pressed, +QColumnView::indicator:indeterminate:hover, +QColumnView::indicator:indeterminate:focus, +QColumnView::indicator:indeterminate:pressed { + image: url(":/qss_icons/light/rc_light/checkbox_indeterminate_focus.png"); +} + +QTreeView, +QListView, +QTableView, +QColumnView { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + color: #19232D; + gridline-color: #C9CDD0; + border-radius: 4px; +} + +QTreeView:disabled, +QListView:disabled, +QTableView:disabled, +QColumnView:disabled { + background-color: #FAFAFA; + color: #788D9C; +} + +QTreeView:selected, +QListView:selected, +QTableView:selected, +QColumnView:selected { + background-color: #9FCBFF; + color: #C9CDD0; +} + +QTreeView:focus, +QListView:focus, +QTableView:focus, +QColumnView:focus { + border: 1px solid #73C7FF; +} + +QTreeView::item:pressed, +QListView::item:pressed, +QTableView::item:pressed, +QColumnView::item:pressed { + background-color: #9FCBFF; +} + +QTreeView::item:selected:active, +QListView::item:selected:active, +QTableView::item:selected:active, +QColumnView::item:selected:active { + background-color: #9FCBFF; +} + +QTreeView::item:selected:!active, +QListView::item:selected:!active, +QTableView::item:selected:!active, +QColumnView::item:selected:!active { + color: #19232D; + background-color: #CED1D4; +} + +QTreeView::item:!selected:hover, +QListView::item:!selected:hover, +QTableView::item:!selected:hover, +QColumnView::item:!selected:hover { + outline: 0; + color: #19232D; + background-color: #CED1D4; +} + +QTableCornerButton::section { + background-color: #FAFAFA; + border: 1px transparent #C9CDD0; + border-radius: 0px; +} + +/* QHeaderView ------------------------------------------------------------ + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qheaderview + +--------------------------------------------------------------------------- */ +QHeaderView { + background-color: #C9CDD0; + border: 0px transparent #C9CDD0; + padding: 0; + margin: 0; + border-radius: 0; +} + +QHeaderView:disabled { + background-color: #C9CDD0; + border: 1px transparent #C9CDD0; +} + +QHeaderView::section { + background-color: #C9CDD0; + color: #19232D; + border-radius: 0; + text-align: left; + font-size: 13px; +} + +QHeaderView::section::horizontal { + padding-top: 0; + padding-bottom: 0; + padding-left: 4px; + padding-right: 4px; + border-left: 1px solid #FAFAFA; +} + +QHeaderView::section::horizontal::first, QHeaderView::section::horizontal::only-one { + border-left: 1px solid #C9CDD0; +} + +QHeaderView::section::horizontal:disabled { + color: #788D9C; +} + +QHeaderView::section::vertical { + padding-top: 0; + padding-bottom: 0; + padding-left: 4px; + padding-right: 4px; + border-top: 1px solid #FAFAFA; +} + +QHeaderView::section::vertical::first, QHeaderView::section::vertical::only-one { + border-top: 1px solid #C9CDD0; +} + +QHeaderView::section::vertical:disabled { + color: #788D9C; +} + +QHeaderView::down-arrow { + /* Those settings (border/width/height/background-color) solve bug */ + /* transparent arrow background and size */ + background-color: #C9CDD0; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(":/qss_icons/light/rc_light/arrow_down.png"); +} + +QHeaderView::up-arrow { + background-color: #C9CDD0; + border: none; + height: 12px; + width: 12px; + padding-left: 2px; + padding-right: 2px; + image: url(":/qss_icons/light/rc_light/arrow_up.png"); +} + +/* QToolBox -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtoolbox + +--------------------------------------------------------------------------- */ +QToolBox { + padding: 0px; + border: 0px; + border: 1px solid #C9CDD0; +} + +QToolBox:selected { + padding: 0px; + border: 2px solid #9FCBFF; +} + +QToolBox::tab { + background-color: #FAFAFA; + border: 1px solid #C9CDD0; + color: #19232D; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QToolBox::tab:disabled { + color: #788D9C; +} + +QToolBox::tab:selected { + background-color: #ACB1B6; + border-bottom: 2px solid #9FCBFF; +} + +QToolBox::tab:selected:disabled { + background-color: #C9CDD0; + border-bottom: 2px solid #DAEDFF; +} + +QToolBox::tab:!selected { + background-color: #C9CDD0; + border-bottom: 2px solid #C9CDD0; +} + +QToolBox::tab:!selected:disabled { + background-color: #FAFAFA; +} + +QToolBox::tab:hover { + border-color: #73C7FF; + border-bottom: 2px solid #73C7FF; +} + +QToolBox QScrollArea QWidget QWidget { + padding: 0px; + border: 0px; + background-color: #FAFAFA; +} + +/* QFrame ----------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qframe +https://doc.qt.io/qt-5/qframe.html#-prop +https://doc.qt.io/qt-5/qframe.html#details +https://stackoverflow.com/questions/14581498/qt-stylesheet-for-hline-vline-color + +--------------------------------------------------------------------------- */ +/* (dot) .QFrame fix #141, #126, #123 */ +.QFrame { + border-radius: 4px; + border: 1px solid #C9CDD0; + /* No frame */ + /* HLine */ + /* HLine */ +} + +.QFrame[frameShape="0"] { + border-radius: 4px; + border: 1px transparent #C9CDD0; +} + +.QFrame[frameShape="4"] { + max-height: 2px; + border: none; + background-color: #C9CDD0; +} + +.QFrame[frameShape="5"] { + max-width: 2px; + border: none; + background-color: #C9CDD0; +} + +/* QSplitter -------------------------------------------------------------- + +https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qsplitter + +--------------------------------------------------------------------------- */ +QSplitter { + background-color: #C9CDD0; + spacing: 0px; + padding: 0px; + margin: 0px; +} + +QSplitter::handle { + background-color: #C9CDD0; + border: 0px solid #FAFAFA; + spacing: 0px; + padding: 1px; + margin: 0px; +} + +QSplitter::handle:hover { + background-color: #788D9C; +} + +QSplitter::handle:horizontal { + width: 5px; + image: url(":/qss_icons/light/rc_light/line_vertical.png"); +} + +QSplitter::handle:vertical { + height: 5px; + image: url(":/qss_icons/light/rc_light/line_horizontal.png"); +} + +/* QDateEdit, QDateTimeEdit ----------------------------------------------- + +--------------------------------------------------------------------------- */ +QDateEdit, QDateTimeEdit { + selection-background-color: #9FCBFF; + border-style: solid; + border: 1px solid #C9CDD0; + border-radius: 4px; + /* This fixes 103, 111 */ + padding-top: 2px; + /* This fixes 103, 111 */ + padding-bottom: 2px; + padding-left: 4px; + padding-right: 4px; + min-width: 10px; +} + +QDateEdit:on, QDateTimeEdit:on { + selection-background-color: #9FCBFF; +} + +QDateEdit::drop-down, QDateTimeEdit::drop-down { + subcontrol-origin: padding; + subcontrol-position: top right; + width: 12px; + border-left: 1px solid #C9CDD0; +} + +QDateEdit::down-arrow, QDateTimeEdit::down-arrow { + image: url(":/qss_icons/light/rc_light/arrow_down_disabled.png"); + height: 8px; + width: 8px; +} + +QDateEdit::down-arrow:on, QDateEdit::down-arrow:hover, QDateEdit::down-arrow:focus, QDateTimeEdit::down-arrow:on, QDateTimeEdit::down-arrow:hover, QDateTimeEdit::down-arrow:focus { + image: url(":/qss_icons/light/rc_light/arrow_down.png"); +} + +QDateEdit QAbstractItemView, QDateTimeEdit QAbstractItemView { + background-color: #FAFAFA; + border-radius: 4px; + border: 1px solid #C9CDD0; + selection-background-color: #9FCBFF; +} + +/* QAbstractView ---------------------------------------------------------- + +--------------------------------------------------------------------------- */ +QAbstractView:hover { + border: 1px solid #9FCBFF; + color: #19232D; +} + +QAbstractView:selected { + background: #9FCBFF; + color: #C9CDD0; +} + +/* PlotWidget ------------------------------------------------------------- + +--------------------------------------------------------------------------- */ +PlotWidget { + /* Fix cut labels in plots #134 */ + padding: 0px; +} diff --git a/utils/rsc/rc_dark/arrow_down.png b/utils/rsc/rc_dark/arrow_down.png new file mode 100644 index 0000000000000000000000000000000000000000..5575ab5ce569d09e2708b0a16a90a5a5a381790e Binary files /dev/null and b/utils/rsc/rc_dark/arrow_down.png differ diff --git a/utils/rsc/rc_dark/arrow_down@2x.png b/utils/rsc/rc_dark/arrow_down@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4596a5ce8addad7f348c21132be688271c6c3c51 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_down@2x.png differ diff --git a/utils/rsc/rc_dark/arrow_down_disabled.png b/utils/rsc/rc_dark/arrow_down_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..bdf8c1abb736f498c84fc4980d36b450c8131507 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_down_disabled.png differ diff --git a/utils/rsc/rc_dark/arrow_down_disabled@2x.png b/utils/rsc/rc_dark/arrow_down_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc1bcb5241e732dd725009b80f10d48b108142bb Binary files /dev/null and b/utils/rsc/rc_dark/arrow_down_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/arrow_down_focus.png b/utils/rsc/rc_dark/arrow_down_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..94fcdc3597d4f0a0755200c90681c6017261ce9e Binary files /dev/null and b/utils/rsc/rc_dark/arrow_down_focus.png differ diff --git a/utils/rsc/rc_dark/arrow_down_focus@2x.png b/utils/rsc/rc_dark/arrow_down_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2b12f74d0a38ab95428c3ff012c9150e9b20ac2a Binary files /dev/null and b/utils/rsc/rc_dark/arrow_down_focus@2x.png differ diff --git a/utils/rsc/rc_dark/arrow_down_pressed.png b/utils/rsc/rc_dark/arrow_down_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..4058c58b3499409d4f306bf4912c028e5bf0b037 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_down_pressed.png differ diff --git a/utils/rsc/rc_dark/arrow_down_pressed@2x.png b/utils/rsc/rc_dark/arrow_down_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d43b0affaf60565a553974132719110d39ba4a2d Binary files /dev/null and b/utils/rsc/rc_dark/arrow_down_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/arrow_left.png b/utils/rsc/rc_dark/arrow_left.png new file mode 100644 index 0000000000000000000000000000000000000000..7fbc35065bb5941a78725becd5f810d7619e616c Binary files /dev/null and b/utils/rsc/rc_dark/arrow_left.png differ diff --git a/utils/rsc/rc_dark/arrow_left@2x.png b/utils/rsc/rc_dark/arrow_left@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc649ca7093e1b7155c59e8fb08ed00094ae7e67 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_left@2x.png differ diff --git a/utils/rsc/rc_dark/arrow_left_disabled.png b/utils/rsc/rc_dark/arrow_left_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..fa3b282cce48aa69e35c3334cdcfde8575fc560f Binary files /dev/null and b/utils/rsc/rc_dark/arrow_left_disabled.png differ diff --git a/utils/rsc/rc_dark/arrow_left_disabled@2x.png b/utils/rsc/rc_dark/arrow_left_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..87c928ea3ed00ccf8025e343918b55a4287f27f3 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_left_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/arrow_left_focus.png b/utils/rsc/rc_dark/arrow_left_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..52a0d91028955151cd7f12db4cb3c66986c52333 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_left_focus.png differ diff --git a/utils/rsc/rc_dark/arrow_left_focus@2x.png b/utils/rsc/rc_dark/arrow_left_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0ee7029246b572e191905a28abcf8b331face937 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_left_focus@2x.png differ diff --git a/utils/rsc/rc_dark/arrow_left_pressed.png b/utils/rsc/rc_dark/arrow_left_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..c04ce09435c23ac5720f55d7d12e7ffcc6e74248 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_left_pressed.png differ diff --git a/utils/rsc/rc_dark/arrow_left_pressed@2x.png b/utils/rsc/rc_dark/arrow_left_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..02218c80dd467beda61fa8b7ee3efcd2d32eae36 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_left_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/arrow_right.png b/utils/rsc/rc_dark/arrow_right.png new file mode 100644 index 0000000000000000000000000000000000000000..fd31b4f2a4276b8085e1ee20ea9787cd7dbb5c53 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_right.png differ diff --git a/utils/rsc/rc_dark/arrow_right@2x.png b/utils/rsc/rc_dark/arrow_right@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4dbc931200bbce38c512374d0f6c6ca2f294e856 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_right@2x.png differ diff --git a/utils/rsc/rc_dark/arrow_right_disabled.png b/utils/rsc/rc_dark/arrow_right_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..bb4cdb03617db3e7f16f1055faedd523b5485d70 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_right_disabled.png differ diff --git a/utils/rsc/rc_dark/arrow_right_disabled@2x.png b/utils/rsc/rc_dark/arrow_right_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..50f173096e0dfc53d3525dc28ee8f2a4e86f2f72 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_right_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/arrow_right_focus.png b/utils/rsc/rc_dark/arrow_right_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..9dd8f0f0b1230a22d763fee2d397742aba9a96ec Binary files /dev/null and b/utils/rsc/rc_dark/arrow_right_focus.png differ diff --git a/utils/rsc/rc_dark/arrow_right_focus@2x.png b/utils/rsc/rc_dark/arrow_right_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1ac9d5c9ebf44016af725d780287f7a9e31fd555 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_right_focus@2x.png differ diff --git a/utils/rsc/rc_dark/arrow_right_pressed.png b/utils/rsc/rc_dark/arrow_right_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..8ce10fcbe1f86f33769258eaa6f91ec81bf19e11 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_right_pressed.png differ diff --git a/utils/rsc/rc_dark/arrow_right_pressed@2x.png b/utils/rsc/rc_dark/arrow_right_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..86e3b9286c5c08edd9ac267e7fdd2ea566b08ec0 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_right_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/arrow_up.png b/utils/rsc/rc_dark/arrow_up.png new file mode 100644 index 0000000000000000000000000000000000000000..2ea571e471d251a3c76f2908754faaffeebbf0b0 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_up.png differ diff --git a/utils/rsc/rc_dark/arrow_up@2x.png b/utils/rsc/rc_dark/arrow_up@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..51b1d7234c0a17996fa9d0d149fa44a447a01cae Binary files /dev/null and b/utils/rsc/rc_dark/arrow_up@2x.png differ diff --git a/utils/rsc/rc_dark/arrow_up_disabled.png b/utils/rsc/rc_dark/arrow_up_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..146b65f16b4ab7e41d768b66ad175c9eb49b4287 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_up_disabled.png differ diff --git a/utils/rsc/rc_dark/arrow_up_disabled@2x.png b/utils/rsc/rc_dark/arrow_up_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cacee7f748004445b8c8947bc9ecaf793dada4b6 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_up_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/arrow_up_focus.png b/utils/rsc/rc_dark/arrow_up_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..ab33162c73f94dbf7931bce009644a459bbf9812 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_up_focus.png differ diff --git a/utils/rsc/rc_dark/arrow_up_focus@2x.png b/utils/rsc/rc_dark/arrow_up_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0c8ef33f487c65f5be8a290ee8558bbaa7f7139f Binary files /dev/null and b/utils/rsc/rc_dark/arrow_up_focus@2x.png differ diff --git a/utils/rsc/rc_dark/arrow_up_pressed.png b/utils/rsc/rc_dark/arrow_up_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..c3368d096febea4a232751a41d2983faec3a6248 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_up_pressed.png differ diff --git a/utils/rsc/rc_dark/arrow_up_pressed@2x.png b/utils/rsc/rc_dark/arrow_up_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a63819665cb7acac0824a9a0607e2866c2c3da92 Binary files /dev/null and b/utils/rsc/rc_dark/arrow_up_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/base_icon.png b/utils/rsc/rc_dark/base_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1aeed5554e21ad2d8bbec50f8756ab2ccf42c164 Binary files /dev/null and b/utils/rsc/rc_dark/base_icon.png differ diff --git a/utils/rsc/rc_dark/base_icon@2x.png b/utils/rsc/rc_dark/base_icon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f42fc661089472643f308b618ec22ea99ab862bb Binary files /dev/null and b/utils/rsc/rc_dark/base_icon@2x.png differ diff --git a/utils/rsc/rc_dark/base_icon_disabled.png b/utils/rsc/rc_dark/base_icon_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..1aeed5554e21ad2d8bbec50f8756ab2ccf42c164 Binary files /dev/null and b/utils/rsc/rc_dark/base_icon_disabled.png differ diff --git a/utils/rsc/rc_dark/base_icon_disabled@2x.png b/utils/rsc/rc_dark/base_icon_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f42fc661089472643f308b618ec22ea99ab862bb Binary files /dev/null and b/utils/rsc/rc_dark/base_icon_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/base_icon_focus.png b/utils/rsc/rc_dark/base_icon_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..1aeed5554e21ad2d8bbec50f8756ab2ccf42c164 Binary files /dev/null and b/utils/rsc/rc_dark/base_icon_focus.png differ diff --git a/utils/rsc/rc_dark/base_icon_focus@2x.png b/utils/rsc/rc_dark/base_icon_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f42fc661089472643f308b618ec22ea99ab862bb Binary files /dev/null and b/utils/rsc/rc_dark/base_icon_focus@2x.png differ diff --git a/utils/rsc/rc_dark/base_icon_pressed.png b/utils/rsc/rc_dark/base_icon_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..1aeed5554e21ad2d8bbec50f8756ab2ccf42c164 Binary files /dev/null and b/utils/rsc/rc_dark/base_icon_pressed.png differ diff --git a/utils/rsc/rc_dark/base_icon_pressed@2x.png b/utils/rsc/rc_dark/base_icon_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f42fc661089472643f308b618ec22ea99ab862bb Binary files /dev/null and b/utils/rsc/rc_dark/base_icon_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/branch_closed.png b/utils/rsc/rc_dark/branch_closed.png new file mode 100644 index 0000000000000000000000000000000000000000..d484c324b42f065e40783cd85f827b605f59a6dd Binary files /dev/null and b/utils/rsc/rc_dark/branch_closed.png differ diff --git a/utils/rsc/rc_dark/branch_closed@2x.png b/utils/rsc/rc_dark/branch_closed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f49651b704519d8039548111b93554bd743616e8 Binary files /dev/null and b/utils/rsc/rc_dark/branch_closed@2x.png differ diff --git a/utils/rsc/rc_dark/branch_closed_disabled.png b/utils/rsc/rc_dark/branch_closed_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..aa622523c1af8efed0eba8c3433ac92b53473108 Binary files /dev/null and b/utils/rsc/rc_dark/branch_closed_disabled.png differ diff --git a/utils/rsc/rc_dark/branch_closed_disabled@2x.png b/utils/rsc/rc_dark/branch_closed_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ac318f5b193feb6b94a0363406d7d66b0b99b327 Binary files /dev/null and b/utils/rsc/rc_dark/branch_closed_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/branch_closed_focus.png b/utils/rsc/rc_dark/branch_closed_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..0a98eab661d03ac7e32e571db7027a8288476f57 Binary files /dev/null and b/utils/rsc/rc_dark/branch_closed_focus.png differ diff --git a/utils/rsc/rc_dark/branch_closed_focus@2x.png b/utils/rsc/rc_dark/branch_closed_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..39fd0d0e20408fe2f4c44537abea487c927232a1 Binary files /dev/null and b/utils/rsc/rc_dark/branch_closed_focus@2x.png differ diff --git a/utils/rsc/rc_dark/branch_closed_pressed.png b/utils/rsc/rc_dark/branch_closed_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..049f4bfe5b19f10aa7aff62c79504b1325cc580b Binary files /dev/null and b/utils/rsc/rc_dark/branch_closed_pressed.png differ diff --git a/utils/rsc/rc_dark/branch_closed_pressed@2x.png b/utils/rsc/rc_dark/branch_closed_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f58ae2238795878b095402957666e8e663cc4fed Binary files /dev/null and b/utils/rsc/rc_dark/branch_closed_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/branch_end.png b/utils/rsc/rc_dark/branch_end.png new file mode 100644 index 0000000000000000000000000000000000000000..2109845651ae107d5b42a132ebeb2b63c05fb867 Binary files /dev/null and b/utils/rsc/rc_dark/branch_end.png differ diff --git a/utils/rsc/rc_dark/branch_end@2x.png b/utils/rsc/rc_dark/branch_end@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..91f3bd02d3decdf453be0c3183e86d1046087629 Binary files /dev/null and b/utils/rsc/rc_dark/branch_end@2x.png differ diff --git a/utils/rsc/rc_dark/branch_end_disabled.png b/utils/rsc/rc_dark/branch_end_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..fe819bc14156ed1ea3822956c893ec996017b404 Binary files /dev/null and b/utils/rsc/rc_dark/branch_end_disabled.png differ diff --git a/utils/rsc/rc_dark/branch_end_disabled@2x.png b/utils/rsc/rc_dark/branch_end_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..58024770943348ff8b9ff6b2f3cce0cbc8eb8894 Binary files /dev/null and b/utils/rsc/rc_dark/branch_end_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/branch_end_focus.png b/utils/rsc/rc_dark/branch_end_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..9a978c0cc626e4c8a3bde6568e3e6197bedbd5cd Binary files /dev/null and b/utils/rsc/rc_dark/branch_end_focus.png differ diff --git a/utils/rsc/rc_dark/branch_end_focus@2x.png b/utils/rsc/rc_dark/branch_end_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ece9b825d5ac72bc51e950af77c6071af1d65a1f Binary files /dev/null and b/utils/rsc/rc_dark/branch_end_focus@2x.png differ diff --git a/utils/rsc/rc_dark/branch_end_pressed.png b/utils/rsc/rc_dark/branch_end_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..1d4050997cd7ebca3c982e660a9ebdbb4712a9b1 Binary files /dev/null and b/utils/rsc/rc_dark/branch_end_pressed.png differ diff --git a/utils/rsc/rc_dark/branch_end_pressed@2x.png b/utils/rsc/rc_dark/branch_end_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4822745c4378dd4a5780f41afdd9fb3cfec731e8 Binary files /dev/null and b/utils/rsc/rc_dark/branch_end_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/branch_line.png b/utils/rsc/rc_dark/branch_line.png new file mode 100644 index 0000000000000000000000000000000000000000..75cc027f81737e367517a2b2c7fd7bd243ff0d37 Binary files /dev/null and b/utils/rsc/rc_dark/branch_line.png differ diff --git a/utils/rsc/rc_dark/branch_line@2x.png b/utils/rsc/rc_dark/branch_line@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7273705589c0fa5f768274376eab813eda018b3a Binary files /dev/null and b/utils/rsc/rc_dark/branch_line@2x.png differ diff --git a/utils/rsc/rc_dark/branch_line_disabled.png b/utils/rsc/rc_dark/branch_line_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..01c6cffa7a4c41e39c8b2f2ad8ac1f60807ae0d2 Binary files /dev/null and b/utils/rsc/rc_dark/branch_line_disabled.png differ diff --git a/utils/rsc/rc_dark/branch_line_disabled@2x.png b/utils/rsc/rc_dark/branch_line_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..57789e942675a34da6a6a113f14ac483cffb93f6 Binary files /dev/null and b/utils/rsc/rc_dark/branch_line_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/branch_line_focus.png b/utils/rsc/rc_dark/branch_line_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..599626230bff816cfdf552ed76a7623fc1e83c58 Binary files /dev/null and b/utils/rsc/rc_dark/branch_line_focus.png differ diff --git a/utils/rsc/rc_dark/branch_line_focus@2x.png b/utils/rsc/rc_dark/branch_line_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..34e7d603f7aeb233f097c963069f24011c1324da Binary files /dev/null and b/utils/rsc/rc_dark/branch_line_focus@2x.png differ diff --git a/utils/rsc/rc_dark/branch_line_pressed.png b/utils/rsc/rc_dark/branch_line_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..6a54b0948d7de3b7b5b7651abdb8caaa23f91080 Binary files /dev/null and b/utils/rsc/rc_dark/branch_line_pressed.png differ diff --git a/utils/rsc/rc_dark/branch_line_pressed@2x.png b/utils/rsc/rc_dark/branch_line_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fb74fd3243db35b207fc12b7309450008792736d Binary files /dev/null and b/utils/rsc/rc_dark/branch_line_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/branch_more.png b/utils/rsc/rc_dark/branch_more.png new file mode 100644 index 0000000000000000000000000000000000000000..045f963fac6eb74a5b978c23fe7e58ebb2bb5027 Binary files /dev/null and b/utils/rsc/rc_dark/branch_more.png differ diff --git a/utils/rsc/rc_dark/branch_more@2x.png b/utils/rsc/rc_dark/branch_more@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ccde0931651541714654a629be4ffcf391f6ce61 Binary files /dev/null and b/utils/rsc/rc_dark/branch_more@2x.png differ diff --git a/utils/rsc/rc_dark/branch_more_disabled.png b/utils/rsc/rc_dark/branch_more_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..8630b91c95381b851e7caab3ef7ec5b0e92e31ca Binary files /dev/null and b/utils/rsc/rc_dark/branch_more_disabled.png differ diff --git a/utils/rsc/rc_dark/branch_more_disabled@2x.png b/utils/rsc/rc_dark/branch_more_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..37d2cdbbd5479aeb25be4e5f3f5dde5be7229c0a Binary files /dev/null and b/utils/rsc/rc_dark/branch_more_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/branch_more_focus.png b/utils/rsc/rc_dark/branch_more_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..38067367f8da378cc48efc893076fbcf831bd6db Binary files /dev/null and b/utils/rsc/rc_dark/branch_more_focus.png differ diff --git a/utils/rsc/rc_dark/branch_more_focus@2x.png b/utils/rsc/rc_dark/branch_more_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d80ccb8ccba7e3fd3c279a3ddad6adf020d60855 Binary files /dev/null and b/utils/rsc/rc_dark/branch_more_focus@2x.png differ diff --git a/utils/rsc/rc_dark/branch_more_pressed.png b/utils/rsc/rc_dark/branch_more_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..a306eb288f0ce1ee9fcfe32e951f50d99a870320 Binary files /dev/null and b/utils/rsc/rc_dark/branch_more_pressed.png differ diff --git a/utils/rsc/rc_dark/branch_more_pressed@2x.png b/utils/rsc/rc_dark/branch_more_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7044b28223febf305198af5cabafa1779416736a Binary files /dev/null and b/utils/rsc/rc_dark/branch_more_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/branch_open.png b/utils/rsc/rc_dark/branch_open.png new file mode 100644 index 0000000000000000000000000000000000000000..445ec718101e8becb0f4b3952a52b66dd5a62721 Binary files /dev/null and b/utils/rsc/rc_dark/branch_open.png differ diff --git a/utils/rsc/rc_dark/branch_open@2x.png b/utils/rsc/rc_dark/branch_open@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..febb31878907d870b65c1a4c7cd426b9e179fe47 Binary files /dev/null and b/utils/rsc/rc_dark/branch_open@2x.png differ diff --git a/utils/rsc/rc_dark/branch_open_disabled.png b/utils/rsc/rc_dark/branch_open_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3b840d7678dbb711fdcbda65cd2501255a8e6c0d Binary files /dev/null and b/utils/rsc/rc_dark/branch_open_disabled.png differ diff --git a/utils/rsc/rc_dark/branch_open_disabled@2x.png b/utils/rsc/rc_dark/branch_open_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d6c5b40ed2195fb73751770d977a7673d4c3ce2b Binary files /dev/null and b/utils/rsc/rc_dark/branch_open_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/branch_open_focus.png b/utils/rsc/rc_dark/branch_open_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..fecf8733e1be04a11efd690f1b4b406a81308058 Binary files /dev/null and b/utils/rsc/rc_dark/branch_open_focus.png differ diff --git a/utils/rsc/rc_dark/branch_open_focus@2x.png b/utils/rsc/rc_dark/branch_open_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..296d17553ccf8e51068f163eb1dbf52aa0f563af Binary files /dev/null and b/utils/rsc/rc_dark/branch_open_focus@2x.png differ diff --git a/utils/rsc/rc_dark/branch_open_pressed.png b/utils/rsc/rc_dark/branch_open_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..8a7cffab5491b36d923c598813ce2848ce763f97 Binary files /dev/null and b/utils/rsc/rc_dark/branch_open_pressed.png differ diff --git a/utils/rsc/rc_dark/branch_open_pressed@2x.png b/utils/rsc/rc_dark/branch_open_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..24e282c85cf22a5c2101f14a54effe7bff4249d8 Binary files /dev/null and b/utils/rsc/rc_dark/branch_open_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/checkbox_checked.png b/utils/rsc/rc_dark/checkbox_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..aa5f56720d7a0b4ed7c94e8417af0de691af2925 Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_checked.png differ diff --git a/utils/rsc/rc_dark/checkbox_checked@2x.png b/utils/rsc/rc_dark/checkbox_checked@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..60b4fb2ae13132b5a7c3c26cca5eac0a9969cc72 Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_checked@2x.png differ diff --git a/utils/rsc/rc_dark/checkbox_checked_disabled.png b/utils/rsc/rc_dark/checkbox_checked_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..208f3709efd963dbb2a42821027180a49a6a899a Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_checked_disabled.png differ diff --git a/utils/rsc/rc_dark/checkbox_checked_disabled@2x.png b/utils/rsc/rc_dark/checkbox_checked_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7c8ad0c584186158c8ec9c8d0a282b319492a591 Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_checked_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/checkbox_checked_focus.png b/utils/rsc/rc_dark/checkbox_checked_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..a35def37feec07aad46c3f90bdc12e680d150cc8 Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_checked_focus.png differ diff --git a/utils/rsc/rc_dark/checkbox_checked_focus@2x.png b/utils/rsc/rc_dark/checkbox_checked_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..925cd36208f8e985dec5e47bd4480413afd69dcc Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_checked_focus@2x.png differ diff --git a/utils/rsc/rc_dark/checkbox_checked_pressed.png b/utils/rsc/rc_dark/checkbox_checked_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..f95dc13eb9b6e69937fe0b0e3bcc05bff1d823c0 Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_checked_pressed.png differ diff --git a/utils/rsc/rc_dark/checkbox_checked_pressed@2x.png b/utils/rsc/rc_dark/checkbox_checked_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..641c047aef546eb4a66da486c9b14092b503aac3 Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_checked_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/checkbox_indeterminate.png b/utils/rsc/rc_dark/checkbox_indeterminate.png new file mode 100644 index 0000000000000000000000000000000000000000..02de1ad2c56e5a0d6e7f418f6d669ac60e6a2770 Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_indeterminate.png differ diff --git a/utils/rsc/rc_dark/checkbox_indeterminate@2x.png b/utils/rsc/rc_dark/checkbox_indeterminate@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8fabf6ea488aaddfdbf948802c07ab944044e003 Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_indeterminate@2x.png differ diff --git a/utils/rsc/rc_dark/checkbox_indeterminate_disabled.png b/utils/rsc/rc_dark/checkbox_indeterminate_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..df99affe016d77926885f4e79454a790af168ec3 Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_indeterminate_disabled.png differ diff --git a/utils/rsc/rc_dark/checkbox_indeterminate_disabled@2x.png b/utils/rsc/rc_dark/checkbox_indeterminate_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3102eaa3f59bd213cb312df5d946016118eba943 Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_indeterminate_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/checkbox_indeterminate_focus.png b/utils/rsc/rc_dark/checkbox_indeterminate_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..370454348f95a416c5c2ba27ded03e72e8564835 Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_indeterminate_focus.png differ diff --git a/utils/rsc/rc_dark/checkbox_indeterminate_focus@2x.png b/utils/rsc/rc_dark/checkbox_indeterminate_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8da0a8c983d3206248ed93b450c7c293b2d817db Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_indeterminate_focus@2x.png differ diff --git a/utils/rsc/rc_dark/checkbox_indeterminate_pressed.png b/utils/rsc/rc_dark/checkbox_indeterminate_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..b971d7fae5cffdffb0cb0ee5a170a4152c0baac1 Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_indeterminate_pressed.png differ diff --git a/utils/rsc/rc_dark/checkbox_indeterminate_pressed@2x.png b/utils/rsc/rc_dark/checkbox_indeterminate_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9e37b8433ae4fc97f4a952769041f84726577b08 Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_indeterminate_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/checkbox_unchecked.png b/utils/rsc/rc_dark/checkbox_unchecked.png new file mode 100644 index 0000000000000000000000000000000000000000..80bcf2b660c529f9d19349f9180e8df76f0f466a Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_unchecked.png differ diff --git a/utils/rsc/rc_dark/checkbox_unchecked@2x.png b/utils/rsc/rc_dark/checkbox_unchecked@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..df0fa4d5a841597365069e8027e0ad71910ad7d9 Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_unchecked@2x.png differ diff --git a/utils/rsc/rc_dark/checkbox_unchecked_disabled.png b/utils/rsc/rc_dark/checkbox_unchecked_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ede58c818d906470a46438b5a038e478d67e475f Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_unchecked_disabled.png differ diff --git a/utils/rsc/rc_dark/checkbox_unchecked_disabled@2x.png b/utils/rsc/rc_dark/checkbox_unchecked_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6721b38f5f24dc28bee8ea4a3ca0e9f8108a4c01 Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_unchecked_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/checkbox_unchecked_focus.png b/utils/rsc/rc_dark/checkbox_unchecked_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..3883d2d5a28cc6fd2b7cb9cfa54ec435687409b5 Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_unchecked_focus.png differ diff --git a/utils/rsc/rc_dark/checkbox_unchecked_focus@2x.png b/utils/rsc/rc_dark/checkbox_unchecked_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..35c061c0db3db83ddad5fb72cf43eeb06446b58a Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_unchecked_focus@2x.png differ diff --git a/utils/rsc/rc_dark/checkbox_unchecked_pressed.png b/utils/rsc/rc_dark/checkbox_unchecked_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..d98639eedce57060249d9a5c39b5d189804b0c2a Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_unchecked_pressed.png differ diff --git a/utils/rsc/rc_dark/checkbox_unchecked_pressed@2x.png b/utils/rsc/rc_dark/checkbox_unchecked_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..88a52460dce4edef3484455c45dee9572511e6f5 Binary files /dev/null and b/utils/rsc/rc_dark/checkbox_unchecked_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/line_horizontal.png b/utils/rsc/rc_dark/line_horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..bc858c8d0ce607e693694425a4e1e82f2b882f97 Binary files /dev/null and b/utils/rsc/rc_dark/line_horizontal.png differ diff --git a/utils/rsc/rc_dark/line_horizontal@2x.png b/utils/rsc/rc_dark/line_horizontal@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7ea4f9c1c178c6a22334bc9144c58451e74f99a3 Binary files /dev/null and b/utils/rsc/rc_dark/line_horizontal@2x.png differ diff --git a/utils/rsc/rc_dark/line_horizontal_disabled.png b/utils/rsc/rc_dark/line_horizontal_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..72e073a789692e5c2346142b990dcfa47c9c410c Binary files /dev/null and b/utils/rsc/rc_dark/line_horizontal_disabled.png differ diff --git a/utils/rsc/rc_dark/line_horizontal_disabled@2x.png b/utils/rsc/rc_dark/line_horizontal_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..09a439df962a68164c87bfda552670a44a941c18 Binary files /dev/null and b/utils/rsc/rc_dark/line_horizontal_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/line_horizontal_focus.png b/utils/rsc/rc_dark/line_horizontal_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..c84512bb54d6bb2046f3552363db0b7faa1f6620 Binary files /dev/null and b/utils/rsc/rc_dark/line_horizontal_focus.png differ diff --git a/utils/rsc/rc_dark/line_horizontal_focus@2x.png b/utils/rsc/rc_dark/line_horizontal_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8dd58f609f7e73774edb47f36c7e53c20d419a08 Binary files /dev/null and b/utils/rsc/rc_dark/line_horizontal_focus@2x.png differ diff --git a/utils/rsc/rc_dark/line_horizontal_pressed.png b/utils/rsc/rc_dark/line_horizontal_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..7ca2605bd5a275df2266842439d0725f170647d3 Binary files /dev/null and b/utils/rsc/rc_dark/line_horizontal_pressed.png differ diff --git a/utils/rsc/rc_dark/line_horizontal_pressed@2x.png b/utils/rsc/rc_dark/line_horizontal_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bd966178122b2875018a1430f7fa213f200fe6e4 Binary files /dev/null and b/utils/rsc/rc_dark/line_horizontal_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/line_vertical.png b/utils/rsc/rc_dark/line_vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..49a9105261779cb93e4a66ca49d4cd52681081c2 Binary files /dev/null and b/utils/rsc/rc_dark/line_vertical.png differ diff --git a/utils/rsc/rc_dark/line_vertical@2x.png b/utils/rsc/rc_dark/line_vertical@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cbb017ee609e3f273e34f084775e4cc1824b89c6 Binary files /dev/null and b/utils/rsc/rc_dark/line_vertical@2x.png differ diff --git a/utils/rsc/rc_dark/line_vertical_disabled.png b/utils/rsc/rc_dark/line_vertical_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..96585468854c16306fb1bd201e9a047f57610e13 Binary files /dev/null and b/utils/rsc/rc_dark/line_vertical_disabled.png differ diff --git a/utils/rsc/rc_dark/line_vertical_disabled@2x.png b/utils/rsc/rc_dark/line_vertical_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7836a9465433e489635a9e48e45c748dddecb5d2 Binary files /dev/null and b/utils/rsc/rc_dark/line_vertical_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/line_vertical_focus.png b/utils/rsc/rc_dark/line_vertical_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..512ee7d235a51e815b319907242ec62705bddc2c Binary files /dev/null and b/utils/rsc/rc_dark/line_vertical_focus.png differ diff --git a/utils/rsc/rc_dark/line_vertical_focus@2x.png b/utils/rsc/rc_dark/line_vertical_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..af503251d4abd58ec684d81819f531d97cc98f00 Binary files /dev/null and b/utils/rsc/rc_dark/line_vertical_focus@2x.png differ diff --git a/utils/rsc/rc_dark/line_vertical_pressed.png b/utils/rsc/rc_dark/line_vertical_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..b8dd215356f3471b30b411bce8ec8a2a86533eda Binary files /dev/null and b/utils/rsc/rc_dark/line_vertical_pressed.png differ diff --git a/utils/rsc/rc_dark/line_vertical_pressed@2x.png b/utils/rsc/rc_dark/line_vertical_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e1d43a83e28d6d433a5c9b9f8e8be57f3bba786a Binary files /dev/null and b/utils/rsc/rc_dark/line_vertical_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/radio_checked.png b/utils/rsc/rc_dark/radio_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..2a1d26a4f17cd1fe8d8839310a97b4bf80068f97 Binary files /dev/null and b/utils/rsc/rc_dark/radio_checked.png differ diff --git a/utils/rsc/rc_dark/radio_checked@2x.png b/utils/rsc/rc_dark/radio_checked@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..eb2cbb46c00a699fc20749d7bfdfedab44d6941a Binary files /dev/null and b/utils/rsc/rc_dark/radio_checked@2x.png differ diff --git a/utils/rsc/rc_dark/radio_checked_disabled.png b/utils/rsc/rc_dark/radio_checked_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..f78c15360f84f414dee6911d6bc2a82d4261c236 Binary files /dev/null and b/utils/rsc/rc_dark/radio_checked_disabled.png differ diff --git a/utils/rsc/rc_dark/radio_checked_disabled@2x.png b/utils/rsc/rc_dark/radio_checked_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..30168e86bc2d6438454babf56baafb7c1a419f51 Binary files /dev/null and b/utils/rsc/rc_dark/radio_checked_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/radio_checked_focus.png b/utils/rsc/rc_dark/radio_checked_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..6d9c9801cf0b6ff3649e3eb4b6e641719ecadd20 Binary files /dev/null and b/utils/rsc/rc_dark/radio_checked_focus.png differ diff --git a/utils/rsc/rc_dark/radio_checked_focus@2x.png b/utils/rsc/rc_dark/radio_checked_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..63476a0752671e91713c24391dd98aa7bfd80b56 Binary files /dev/null and b/utils/rsc/rc_dark/radio_checked_focus@2x.png differ diff --git a/utils/rsc/rc_dark/radio_checked_pressed.png b/utils/rsc/rc_dark/radio_checked_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..421ecb44a48b3c36647c2d1e7288f48d3124d52e Binary files /dev/null and b/utils/rsc/rc_dark/radio_checked_pressed.png differ diff --git a/utils/rsc/rc_dark/radio_checked_pressed@2x.png b/utils/rsc/rc_dark/radio_checked_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9030e10138c4604d59f620a4fa3e69da8f228b33 Binary files /dev/null and b/utils/rsc/rc_dark/radio_checked_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/radio_unchecked.png b/utils/rsc/rc_dark/radio_unchecked.png new file mode 100644 index 0000000000000000000000000000000000000000..23b06ced329a3197e5ddec6467c5d881b40dc52e Binary files /dev/null and b/utils/rsc/rc_dark/radio_unchecked.png differ diff --git a/utils/rsc/rc_dark/radio_unchecked@2x.png b/utils/rsc/rc_dark/radio_unchecked@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..41e790ac764a1c951fffc2559cecd2c87d87d59f Binary files /dev/null and b/utils/rsc/rc_dark/radio_unchecked@2x.png differ diff --git a/utils/rsc/rc_dark/radio_unchecked_disabled.png b/utils/rsc/rc_dark/radio_unchecked_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..075ca8557a941aa42638ed74990897756311b87a Binary files /dev/null and b/utils/rsc/rc_dark/radio_unchecked_disabled.png differ diff --git a/utils/rsc/rc_dark/radio_unchecked_disabled@2x.png b/utils/rsc/rc_dark/radio_unchecked_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..61cd48ffe12c5da696c0634928382744f01838ad Binary files /dev/null and b/utils/rsc/rc_dark/radio_unchecked_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/radio_unchecked_focus.png b/utils/rsc/rc_dark/radio_unchecked_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..d58758039c280f8bffaceac2db5ac63d4cd3a850 Binary files /dev/null and b/utils/rsc/rc_dark/radio_unchecked_focus.png differ diff --git a/utils/rsc/rc_dark/radio_unchecked_focus@2x.png b/utils/rsc/rc_dark/radio_unchecked_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0f12c860be431b46ed6351643e9ba8a3c39aa854 Binary files /dev/null and b/utils/rsc/rc_dark/radio_unchecked_focus@2x.png differ diff --git a/utils/rsc/rc_dark/radio_unchecked_pressed.png b/utils/rsc/rc_dark/radio_unchecked_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..37c09a6d81e007bcf678f7a835755cb928a6933a Binary files /dev/null and b/utils/rsc/rc_dark/radio_unchecked_pressed.png differ diff --git a/utils/rsc/rc_dark/radio_unchecked_pressed@2x.png b/utils/rsc/rc_dark/radio_unchecked_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9e424e4b37ae52a2a94d351b855b2167bc27f5b2 Binary files /dev/null and b/utils/rsc/rc_dark/radio_unchecked_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal.png b/utils/rsc/rc_dark/toolbar_move_horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..9d2f51f062442018b2ea3b0558b1ccf442d73ea8 Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_horizontal.png differ diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal@2x.png b/utils/rsc/rc_dark/toolbar_move_horizontal@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c35b4653240feb15e25c4b840b598c5b47628e69 Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_horizontal@2x.png differ diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal_disabled.png b/utils/rsc/rc_dark/toolbar_move_horizontal_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..013ac4578b12fc76571f47db420fcb2653a4eca8 Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_horizontal_disabled.png differ diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal_disabled@2x.png b/utils/rsc/rc_dark/toolbar_move_horizontal_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f713dd4d046c76717979a0d47a57ccaba9631404 Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_horizontal_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal_focus.png b/utils/rsc/rc_dark/toolbar_move_horizontal_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..6d0d425889d977a6a6b0b92786dea52168791861 Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_horizontal_focus.png differ diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal_focus@2x.png b/utils/rsc/rc_dark/toolbar_move_horizontal_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0a5ca39b1eb7ece9a93e3d76627ae2efb2746bfc Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_horizontal_focus@2x.png differ diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal_pressed.png b/utils/rsc/rc_dark/toolbar_move_horizontal_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..e414c0c52bc0b10c01ee74448217e6a44a5e11dd Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_horizontal_pressed.png differ diff --git a/utils/rsc/rc_dark/toolbar_move_horizontal_pressed@2x.png b/utils/rsc/rc_dark/toolbar_move_horizontal_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e8e8af20f3502fff80898ec36910768e740fe2bc Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_horizontal_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/toolbar_move_vertical.png b/utils/rsc/rc_dark/toolbar_move_vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..140846d759a7ff963856278443400398aa1f48f3 Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_vertical.png differ diff --git a/utils/rsc/rc_dark/toolbar_move_vertical@2x.png b/utils/rsc/rc_dark/toolbar_move_vertical@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7edf454a3b72a890f5c177f22a11e0d83a4b80c2 Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_vertical@2x.png differ diff --git a/utils/rsc/rc_dark/toolbar_move_vertical_disabled.png b/utils/rsc/rc_dark/toolbar_move_vertical_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..5cd85dd72434f5171f88f8d259bb21150186da3b Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_vertical_disabled.png differ diff --git a/utils/rsc/rc_dark/toolbar_move_vertical_disabled@2x.png b/utils/rsc/rc_dark/toolbar_move_vertical_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..07d5ae1bffe7e5b37934788ef4f4face59da1ecb Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_vertical_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/toolbar_move_vertical_focus.png b/utils/rsc/rc_dark/toolbar_move_vertical_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..9aac0365ad51127f595ecece819298531ad89ab9 Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_vertical_focus.png differ diff --git a/utils/rsc/rc_dark/toolbar_move_vertical_focus@2x.png b/utils/rsc/rc_dark/toolbar_move_vertical_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c3b1d1805cb3fe3c4ead89149b2c6528ce6cf155 Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_vertical_focus@2x.png differ diff --git a/utils/rsc/rc_dark/toolbar_move_vertical_pressed.png b/utils/rsc/rc_dark/toolbar_move_vertical_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..30b3921e20e5c01d2839ced911886aad7674711e Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_vertical_pressed.png differ diff --git a/utils/rsc/rc_dark/toolbar_move_vertical_pressed@2x.png b/utils/rsc/rc_dark/toolbar_move_vertical_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bd01207452e9c6acbe6f2bff42e02217b69849cd Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_move_vertical_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal.png b/utils/rsc/rc_dark/toolbar_separator_horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..96e2689ff5f7f4f5c69ec2c9bd5ecac9ee60c346 Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_horizontal.png differ diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal@2x.png b/utils/rsc/rc_dark/toolbar_separator_horizontal@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5944e44c9550998d5b4ce1b448b1fffd79e0042e Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_horizontal@2x.png differ diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal_disabled.png b/utils/rsc/rc_dark/toolbar_separator_horizontal_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..941e14509d5b8c58c484db94925f6f6d09a4be09 Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_horizontal_disabled.png differ diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal_disabled@2x.png b/utils/rsc/rc_dark/toolbar_separator_horizontal_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e44a33be6c9523e88a75557fda60da7c348e4a9d Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_horizontal_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal_focus.png b/utils/rsc/rc_dark/toolbar_separator_horizontal_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..590b314711ced2ff4b6aa08022cce45a9cca0e11 Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_horizontal_focus.png differ diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal_focus@2x.png b/utils/rsc/rc_dark/toolbar_separator_horizontal_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ca88313f67c91854ee2b3a89bfbbf8d25d0f6002 Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_horizontal_focus@2x.png differ diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal_pressed.png b/utils/rsc/rc_dark/toolbar_separator_horizontal_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..38004682a2a882747f0036f792655109c96123b5 Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_horizontal_pressed.png differ diff --git a/utils/rsc/rc_dark/toolbar_separator_horizontal_pressed@2x.png b/utils/rsc/rc_dark/toolbar_separator_horizontal_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d4b88c0476bb5b540ddf5108a02b52fe26618d8f Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_horizontal_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical.png b/utils/rsc/rc_dark/toolbar_separator_vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..b503c8093ee49c71fae9ae15d78c6163cf10a41d Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_vertical.png differ diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical@2x.png b/utils/rsc/rc_dark/toolbar_separator_vertical@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2725a7fa1aee6f336b84b25639cdfe63ffa14d38 Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_vertical@2x.png differ diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical_disabled.png b/utils/rsc/rc_dark/toolbar_separator_vertical_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..6aa1fbdd763f029569ac0f31d10ea9627d4edced Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_vertical_disabled.png differ diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical_disabled@2x.png b/utils/rsc/rc_dark/toolbar_separator_vertical_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8e54cfa8ec05ee3ff66c6ba131919b7a70974f1b Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_vertical_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical_focus.png b/utils/rsc/rc_dark/toolbar_separator_vertical_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..fcdfc0f21835c0e22d2a6f1010ca2e3f0bd0e37e Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_vertical_focus.png differ diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical_focus@2x.png b/utils/rsc/rc_dark/toolbar_separator_vertical_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..51b0839655f68fea36835f3b18acb7857ec06bdd Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_vertical_focus@2x.png differ diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical_pressed.png b/utils/rsc/rc_dark/toolbar_separator_vertical_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..9d6f84d51ff46471d0aa34652ecbde506cefddb4 Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_vertical_pressed.png differ diff --git a/utils/rsc/rc_dark/toolbar_separator_vertical_pressed@2x.png b/utils/rsc/rc_dark/toolbar_separator_vertical_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3876a8e87650fd78fdc753ed3cd853d14f6f9a21 Binary files /dev/null and b/utils/rsc/rc_dark/toolbar_separator_vertical_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/transparent.png b/utils/rsc/rc_dark/transparent.png new file mode 100644 index 0000000000000000000000000000000000000000..3a95111e51595aa94007fbb3345f2e1c6f2d3a15 Binary files /dev/null and b/utils/rsc/rc_dark/transparent.png differ diff --git a/utils/rsc/rc_dark/transparent@2x.png b/utils/rsc/rc_dark/transparent@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4c4b952259520cacaeb5fac54556987170b3bc70 Binary files /dev/null and b/utils/rsc/rc_dark/transparent@2x.png differ diff --git a/utils/rsc/rc_dark/transparent_disabled.png b/utils/rsc/rc_dark/transparent_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3a95111e51595aa94007fbb3345f2e1c6f2d3a15 Binary files /dev/null and b/utils/rsc/rc_dark/transparent_disabled.png differ diff --git a/utils/rsc/rc_dark/transparent_disabled@2x.png b/utils/rsc/rc_dark/transparent_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4c4b952259520cacaeb5fac54556987170b3bc70 Binary files /dev/null and b/utils/rsc/rc_dark/transparent_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/transparent_focus.png b/utils/rsc/rc_dark/transparent_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..3a95111e51595aa94007fbb3345f2e1c6f2d3a15 Binary files /dev/null and b/utils/rsc/rc_dark/transparent_focus.png differ diff --git a/utils/rsc/rc_dark/transparent_focus@2x.png b/utils/rsc/rc_dark/transparent_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4c4b952259520cacaeb5fac54556987170b3bc70 Binary files /dev/null and b/utils/rsc/rc_dark/transparent_focus@2x.png differ diff --git a/utils/rsc/rc_dark/transparent_pressed.png b/utils/rsc/rc_dark/transparent_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..3a95111e51595aa94007fbb3345f2e1c6f2d3a15 Binary files /dev/null and b/utils/rsc/rc_dark/transparent_pressed.png differ diff --git a/utils/rsc/rc_dark/transparent_pressed@2x.png b/utils/rsc/rc_dark/transparent_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4c4b952259520cacaeb5fac54556987170b3bc70 Binary files /dev/null and b/utils/rsc/rc_dark/transparent_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/window_close.png b/utils/rsc/rc_dark/window_close.png new file mode 100644 index 0000000000000000000000000000000000000000..0115ca3f32bedff8b25115c025f0de5a19c4c658 Binary files /dev/null and b/utils/rsc/rc_dark/window_close.png differ diff --git a/utils/rsc/rc_dark/window_close@2x.png b/utils/rsc/rc_dark/window_close@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..41dcd8160dd3e5b127eaafd36851568e2f1c2b4a Binary files /dev/null and b/utils/rsc/rc_dark/window_close@2x.png differ diff --git a/utils/rsc/rc_dark/window_close_disabled.png b/utils/rsc/rc_dark/window_close_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..55144fff865d59d462d69cee53b6a914095df698 Binary files /dev/null and b/utils/rsc/rc_dark/window_close_disabled.png differ diff --git a/utils/rsc/rc_dark/window_close_disabled@2x.png b/utils/rsc/rc_dark/window_close_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..766aef7c1a8d870f23adecf56437544246d8b2bc Binary files /dev/null and b/utils/rsc/rc_dark/window_close_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/window_close_focus.png b/utils/rsc/rc_dark/window_close_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..61df25f829749c6e3d10d70c06590297f06b7e58 Binary files /dev/null and b/utils/rsc/rc_dark/window_close_focus.png differ diff --git a/utils/rsc/rc_dark/window_close_focus@2x.png b/utils/rsc/rc_dark/window_close_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2ea50b1a9bae52b49d29f3f80b987aac61655418 Binary files /dev/null and b/utils/rsc/rc_dark/window_close_focus@2x.png differ diff --git a/utils/rsc/rc_dark/window_close_pressed.png b/utils/rsc/rc_dark/window_close_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..042311def70b6d5de7265b6529aad4f7506058f2 Binary files /dev/null and b/utils/rsc/rc_dark/window_close_pressed.png differ diff --git a/utils/rsc/rc_dark/window_close_pressed@2x.png b/utils/rsc/rc_dark/window_close_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b54d9a16d99fe14a0a1c56f6b9abd857ce3cb14b Binary files /dev/null and b/utils/rsc/rc_dark/window_close_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/window_grip.png b/utils/rsc/rc_dark/window_grip.png new file mode 100644 index 0000000000000000000000000000000000000000..9ea1c438f5f1d016d97565196f0753c85139ea9d Binary files /dev/null and b/utils/rsc/rc_dark/window_grip.png differ diff --git a/utils/rsc/rc_dark/window_grip@2x.png b/utils/rsc/rc_dark/window_grip@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b31309e8b2e372f833ce144a9a43b6f8cc8c130f Binary files /dev/null and b/utils/rsc/rc_dark/window_grip@2x.png differ diff --git a/utils/rsc/rc_dark/window_grip_disabled.png b/utils/rsc/rc_dark/window_grip_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..b66e23b9982253f8430dff6389546010896bfe16 Binary files /dev/null and b/utils/rsc/rc_dark/window_grip_disabled.png differ diff --git a/utils/rsc/rc_dark/window_grip_disabled@2x.png b/utils/rsc/rc_dark/window_grip_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ee3d0ba8866ee3e6a531a73a1f370e44abd0a22a Binary files /dev/null and b/utils/rsc/rc_dark/window_grip_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/window_grip_focus.png b/utils/rsc/rc_dark/window_grip_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..400af158cd3c34ff79ad51c6085124bd6e36431e Binary files /dev/null and b/utils/rsc/rc_dark/window_grip_focus.png differ diff --git a/utils/rsc/rc_dark/window_grip_focus@2x.png b/utils/rsc/rc_dark/window_grip_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..83c9ec634bd431ba197bf789f241922b6a747bd8 Binary files /dev/null and b/utils/rsc/rc_dark/window_grip_focus@2x.png differ diff --git a/utils/rsc/rc_dark/window_grip_pressed.png b/utils/rsc/rc_dark/window_grip_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..f71dd8c9a53b88d1581c788ffb252626ba5d5d40 Binary files /dev/null and b/utils/rsc/rc_dark/window_grip_pressed.png differ diff --git a/utils/rsc/rc_dark/window_grip_pressed@2x.png b/utils/rsc/rc_dark/window_grip_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..109878a352612428fb1a4dc1ffc7a26a809a1267 Binary files /dev/null and b/utils/rsc/rc_dark/window_grip_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/window_minimize.png b/utils/rsc/rc_dark/window_minimize.png new file mode 100644 index 0000000000000000000000000000000000000000..07517b943ae1f3f9c992c126bd8ba8c18358b914 Binary files /dev/null and b/utils/rsc/rc_dark/window_minimize.png differ diff --git a/utils/rsc/rc_dark/window_minimize@2x.png b/utils/rsc/rc_dark/window_minimize@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..434bb07cd3d0f0166679d6153aeaeaa24a03bac4 Binary files /dev/null and b/utils/rsc/rc_dark/window_minimize@2x.png differ diff --git a/utils/rsc/rc_dark/window_minimize_disabled.png b/utils/rsc/rc_dark/window_minimize_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a1ee4aedad5a25e978e2b997db6a0805a41453f0 Binary files /dev/null and b/utils/rsc/rc_dark/window_minimize_disabled.png differ diff --git a/utils/rsc/rc_dark/window_minimize_disabled@2x.png b/utils/rsc/rc_dark/window_minimize_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8454ad832e0f95d6b8adb24ad5122117d4f7f135 Binary files /dev/null and b/utils/rsc/rc_dark/window_minimize_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/window_minimize_focus.png b/utils/rsc/rc_dark/window_minimize_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..3b56123f1c96e560b24178fb637bb2393b088521 Binary files /dev/null and b/utils/rsc/rc_dark/window_minimize_focus.png differ diff --git a/utils/rsc/rc_dark/window_minimize_focus@2x.png b/utils/rsc/rc_dark/window_minimize_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a66fb71ecc3320b93389ac4004c28fea8d610c50 Binary files /dev/null and b/utils/rsc/rc_dark/window_minimize_focus@2x.png differ diff --git a/utils/rsc/rc_dark/window_minimize_pressed.png b/utils/rsc/rc_dark/window_minimize_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..9b70c0ade02bfed3be09755b6bf124469ad5d5d5 Binary files /dev/null and b/utils/rsc/rc_dark/window_minimize_pressed.png differ diff --git a/utils/rsc/rc_dark/window_minimize_pressed@2x.png b/utils/rsc/rc_dark/window_minimize_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5750a8e7ed5bc6e188eb7c8979808fca3cc2d35f Binary files /dev/null and b/utils/rsc/rc_dark/window_minimize_pressed@2x.png differ diff --git a/utils/rsc/rc_dark/window_undock.png b/utils/rsc/rc_dark/window_undock.png new file mode 100644 index 0000000000000000000000000000000000000000..9be9cdf778bbfbfbdd97d4aa9fc10b38f33c12ab Binary files /dev/null and b/utils/rsc/rc_dark/window_undock.png differ diff --git a/utils/rsc/rc_dark/window_undock@2x.png b/utils/rsc/rc_dark/window_undock@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..40345ab9425d92d9963ecac67d9426040f28840a Binary files /dev/null and b/utils/rsc/rc_dark/window_undock@2x.png differ diff --git a/utils/rsc/rc_dark/window_undock_disabled.png b/utils/rsc/rc_dark/window_undock_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..ea92aee04c517a899c7eb269d8885a705972705d Binary files /dev/null and b/utils/rsc/rc_dark/window_undock_disabled.png differ diff --git a/utils/rsc/rc_dark/window_undock_disabled@2x.png b/utils/rsc/rc_dark/window_undock_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fb8d5483c867e9c8bcc88d20678270ff4cb7a267 Binary files /dev/null and b/utils/rsc/rc_dark/window_undock_disabled@2x.png differ diff --git a/utils/rsc/rc_dark/window_undock_focus.png b/utils/rsc/rc_dark/window_undock_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..5b0338d9b61c8e6dfe1b6c8c91b066b782cbd7f5 Binary files /dev/null and b/utils/rsc/rc_dark/window_undock_focus.png differ diff --git a/utils/rsc/rc_dark/window_undock_focus@2x.png b/utils/rsc/rc_dark/window_undock_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9fea75b09fcf4153c3704064e5734dccda20ee82 Binary files /dev/null and b/utils/rsc/rc_dark/window_undock_focus@2x.png differ diff --git a/utils/rsc/rc_dark/window_undock_pressed.png b/utils/rsc/rc_dark/window_undock_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..4bc657b213bc91a2f86c2ae739be755d6065dc63 Binary files /dev/null and b/utils/rsc/rc_dark/window_undock_pressed.png differ diff --git a/utils/rsc/rc_dark/window_undock_pressed@2x.png b/utils/rsc/rc_dark/window_undock_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2ea0c2c7143090345d288a5e720b084cd04b8f20 Binary files /dev/null and b/utils/rsc/rc_dark/window_undock_pressed@2x.png differ diff --git a/utils/rsc/rc_light/.keep b/utils/rsc/rc_light/.keep new file mode 100644 index 0000000000000000000000000000000000000000..8d1c8b69c3fce7bea45c73efd06983e3c419a92f --- /dev/null +++ b/utils/rsc/rc_light/.keep @@ -0,0 +1 @@ + diff --git a/utils/rsc/rc_light/arrow_down.png b/utils/rsc/rc_light/arrow_down.png new file mode 100644 index 0000000000000000000000000000000000000000..f07aa76f0a27557e384736cec7005e890f436760 Binary files /dev/null and b/utils/rsc/rc_light/arrow_down.png differ diff --git a/utils/rsc/rc_light/arrow_down@2x.png b/utils/rsc/rc_light/arrow_down@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b16b9df1793bf7c0cd5cc4146197af81975c5eb5 Binary files /dev/null and b/utils/rsc/rc_light/arrow_down@2x.png differ diff --git a/utils/rsc/rc_light/arrow_down_disabled.png b/utils/rsc/rc_light/arrow_down_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..d94e55b9556496f376b459855de1293abd065be0 Binary files /dev/null and b/utils/rsc/rc_light/arrow_down_disabled.png differ diff --git a/utils/rsc/rc_light/arrow_down_disabled@2x.png b/utils/rsc/rc_light/arrow_down_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a1bc8741611e72ceadee1df350153ca181398a12 Binary files /dev/null and b/utils/rsc/rc_light/arrow_down_disabled@2x.png differ diff --git a/utils/rsc/rc_light/arrow_down_focus.png b/utils/rsc/rc_light/arrow_down_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..fcd6812051f67ff751901af6245fda5b48ec3274 Binary files /dev/null and b/utils/rsc/rc_light/arrow_down_focus.png differ diff --git a/utils/rsc/rc_light/arrow_down_focus@2x.png b/utils/rsc/rc_light/arrow_down_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a0463e5e961ab24b62a8145c6ed316177d32a135 Binary files /dev/null and b/utils/rsc/rc_light/arrow_down_focus@2x.png differ diff --git a/utils/rsc/rc_light/arrow_down_pressed.png b/utils/rsc/rc_light/arrow_down_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..bbe79a97ec90c3bb27599cbe636e84ad5aac0c52 Binary files /dev/null and b/utils/rsc/rc_light/arrow_down_pressed.png differ diff --git a/utils/rsc/rc_light/arrow_down_pressed@2x.png b/utils/rsc/rc_light/arrow_down_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..28ae890aef4d1d3f70218ef09901fc0ccc1b8955 Binary files /dev/null and b/utils/rsc/rc_light/arrow_down_pressed@2x.png differ diff --git a/utils/rsc/rc_light/arrow_left.png b/utils/rsc/rc_light/arrow_left.png new file mode 100644 index 0000000000000000000000000000000000000000..0708701071be553bc2364bf39c90cd82e870cd47 Binary files /dev/null and b/utils/rsc/rc_light/arrow_left.png differ diff --git a/utils/rsc/rc_light/arrow_left@2x.png b/utils/rsc/rc_light/arrow_left@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c067c7ac179e04688a0e78ceb912dc163d5114ec Binary files /dev/null and b/utils/rsc/rc_light/arrow_left@2x.png differ diff --git a/utils/rsc/rc_light/arrow_left_disabled.png b/utils/rsc/rc_light/arrow_left_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..76ae59b1006800ff01cf26373e3983121e606936 Binary files /dev/null and b/utils/rsc/rc_light/arrow_left_disabled.png differ diff --git a/utils/rsc/rc_light/arrow_left_disabled@2x.png b/utils/rsc/rc_light/arrow_left_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..815f33c0754aac322dc02c007b7ebfed4d1bc4c4 Binary files /dev/null and b/utils/rsc/rc_light/arrow_left_disabled@2x.png differ diff --git a/utils/rsc/rc_light/arrow_left_focus.png b/utils/rsc/rc_light/arrow_left_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..c0856669a6b55f5a387f53dfa9f6807f9cbdeac0 Binary files /dev/null and b/utils/rsc/rc_light/arrow_left_focus.png differ diff --git a/utils/rsc/rc_light/arrow_left_focus@2x.png b/utils/rsc/rc_light/arrow_left_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..48af7238cd41b93df566ba7d942c120728b47bf6 Binary files /dev/null and b/utils/rsc/rc_light/arrow_left_focus@2x.png differ diff --git a/utils/rsc/rc_light/arrow_left_pressed.png b/utils/rsc/rc_light/arrow_left_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..f47340e3cbc8adb953941da0b1ec2e1d9af52bf1 Binary files /dev/null and b/utils/rsc/rc_light/arrow_left_pressed.png differ diff --git a/utils/rsc/rc_light/arrow_left_pressed@2x.png b/utils/rsc/rc_light/arrow_left_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..51b5b7a07e443fb026c50cc2e5a605465fd90a77 Binary files /dev/null and b/utils/rsc/rc_light/arrow_left_pressed@2x.png differ diff --git a/utils/rsc/rc_light/arrow_right.png b/utils/rsc/rc_light/arrow_right.png new file mode 100644 index 0000000000000000000000000000000000000000..45f7857e5ae0556dd1dbf0425971d9b878c1fdc1 Binary files /dev/null and b/utils/rsc/rc_light/arrow_right.png differ diff --git a/utils/rsc/rc_light/arrow_right@2x.png b/utils/rsc/rc_light/arrow_right@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bafdf16c9b87c4accdf08fc1954fa5300ad7d7cb Binary files /dev/null and b/utils/rsc/rc_light/arrow_right@2x.png differ diff --git a/utils/rsc/rc_light/arrow_right_disabled.png b/utils/rsc/rc_light/arrow_right_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..82d1dd28482df443c2ec0e373d602b7eb0a654e6 Binary files /dev/null and b/utils/rsc/rc_light/arrow_right_disabled.png differ diff --git a/utils/rsc/rc_light/arrow_right_disabled@2x.png b/utils/rsc/rc_light/arrow_right_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8d95d832318f60408a60e930ed14163b862ded9b Binary files /dev/null and b/utils/rsc/rc_light/arrow_right_disabled@2x.png differ diff --git a/utils/rsc/rc_light/arrow_right_focus.png b/utils/rsc/rc_light/arrow_right_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..3b3c1b6f8bae4c6663cd2dca3051603fe44c27db Binary files /dev/null and b/utils/rsc/rc_light/arrow_right_focus.png differ diff --git a/utils/rsc/rc_light/arrow_right_focus@2x.png b/utils/rsc/rc_light/arrow_right_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8a3870bddeaf7bf7715d2c3d0c8caca772a6e8dd Binary files /dev/null and b/utils/rsc/rc_light/arrow_right_focus@2x.png differ diff --git a/utils/rsc/rc_light/arrow_right_pressed.png b/utils/rsc/rc_light/arrow_right_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..b4176d59deb802e60a66ab8f6239a8ad52af9e40 Binary files /dev/null and b/utils/rsc/rc_light/arrow_right_pressed.png differ diff --git a/utils/rsc/rc_light/arrow_right_pressed@2x.png b/utils/rsc/rc_light/arrow_right_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..24dfe4e19dd58d8c7d9876b6a3242060502c8d24 Binary files /dev/null and b/utils/rsc/rc_light/arrow_right_pressed@2x.png differ diff --git a/utils/rsc/rc_light/arrow_up.png b/utils/rsc/rc_light/arrow_up.png new file mode 100644 index 0000000000000000000000000000000000000000..7e185babf67d98b152259abf3d178d3bb1521df8 Binary files /dev/null and b/utils/rsc/rc_light/arrow_up.png differ diff --git a/utils/rsc/rc_light/arrow_up@2x.png b/utils/rsc/rc_light/arrow_up@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6925245e377c9ac01513f183f0e442ace5c9f5fa Binary files /dev/null and b/utils/rsc/rc_light/arrow_up@2x.png differ diff --git a/utils/rsc/rc_light/arrow_up_disabled.png b/utils/rsc/rc_light/arrow_up_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..54394e210a3bf3d69fbea3f3859ec44a0ff327f0 Binary files /dev/null and b/utils/rsc/rc_light/arrow_up_disabled.png differ diff --git a/utils/rsc/rc_light/arrow_up_disabled@2x.png b/utils/rsc/rc_light/arrow_up_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0f582d3236c5cf8c9aa40503268f0d282273c4cf Binary files /dev/null and b/utils/rsc/rc_light/arrow_up_disabled@2x.png differ diff --git a/utils/rsc/rc_light/arrow_up_focus.png b/utils/rsc/rc_light/arrow_up_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..4bc54733f4419fb970547edb55e90f05151a9e1c Binary files /dev/null and b/utils/rsc/rc_light/arrow_up_focus.png differ diff --git a/utils/rsc/rc_light/arrow_up_focus@2x.png b/utils/rsc/rc_light/arrow_up_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bdf7f6b2d09fbc613c65a9a471876df08cc3fbc6 Binary files /dev/null and b/utils/rsc/rc_light/arrow_up_focus@2x.png differ diff --git a/utils/rsc/rc_light/arrow_up_pressed.png b/utils/rsc/rc_light/arrow_up_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..04bc9e4ecf0f1c0c79792d9b5ea275aad38c9de5 Binary files /dev/null and b/utils/rsc/rc_light/arrow_up_pressed.png differ diff --git a/utils/rsc/rc_light/arrow_up_pressed@2x.png b/utils/rsc/rc_light/arrow_up_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cd6231f26b1dfaf0b7b93a7ee8affc4407d0c954 Binary files /dev/null and b/utils/rsc/rc_light/arrow_up_pressed@2x.png differ diff --git a/utils/rsc/rc_light/base_icon.png b/utils/rsc/rc_light/base_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1aeed5554e21ad2d8bbec50f8756ab2ccf42c164 Binary files /dev/null and b/utils/rsc/rc_light/base_icon.png differ diff --git a/utils/rsc/rc_light/base_icon@2x.png b/utils/rsc/rc_light/base_icon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f42fc661089472643f308b618ec22ea99ab862bb Binary files /dev/null and b/utils/rsc/rc_light/base_icon@2x.png differ diff --git a/utils/rsc/rc_light/base_icon_disabled.png b/utils/rsc/rc_light/base_icon_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..1aeed5554e21ad2d8bbec50f8756ab2ccf42c164 Binary files /dev/null and b/utils/rsc/rc_light/base_icon_disabled.png differ diff --git a/utils/rsc/rc_light/base_icon_disabled@2x.png b/utils/rsc/rc_light/base_icon_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f42fc661089472643f308b618ec22ea99ab862bb Binary files /dev/null and b/utils/rsc/rc_light/base_icon_disabled@2x.png differ diff --git a/utils/rsc/rc_light/base_icon_focus.png b/utils/rsc/rc_light/base_icon_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..1aeed5554e21ad2d8bbec50f8756ab2ccf42c164 Binary files /dev/null and b/utils/rsc/rc_light/base_icon_focus.png differ diff --git a/utils/rsc/rc_light/base_icon_focus@2x.png b/utils/rsc/rc_light/base_icon_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f42fc661089472643f308b618ec22ea99ab862bb Binary files /dev/null and b/utils/rsc/rc_light/base_icon_focus@2x.png differ diff --git a/utils/rsc/rc_light/base_icon_pressed.png b/utils/rsc/rc_light/base_icon_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..1aeed5554e21ad2d8bbec50f8756ab2ccf42c164 Binary files /dev/null and b/utils/rsc/rc_light/base_icon_pressed.png differ diff --git a/utils/rsc/rc_light/base_icon_pressed@2x.png b/utils/rsc/rc_light/base_icon_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f42fc661089472643f308b618ec22ea99ab862bb Binary files /dev/null and b/utils/rsc/rc_light/base_icon_pressed@2x.png differ diff --git a/utils/rsc/rc_light/branch_closed.png b/utils/rsc/rc_light/branch_closed.png new file mode 100644 index 0000000000000000000000000000000000000000..f41c767e640a9208ad56ccd25f8f28239f029f3b Binary files /dev/null and b/utils/rsc/rc_light/branch_closed.png differ diff --git a/utils/rsc/rc_light/branch_closed@2x.png b/utils/rsc/rc_light/branch_closed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..24bb5fba2f3ed61b06a3409e20efa1e9714864ad Binary files /dev/null and b/utils/rsc/rc_light/branch_closed@2x.png differ diff --git a/utils/rsc/rc_light/branch_closed_disabled.png b/utils/rsc/rc_light/branch_closed_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..2a6b24dea5583998cc4b790a7baad3c4a7ec13ed Binary files /dev/null and b/utils/rsc/rc_light/branch_closed_disabled.png differ diff --git a/utils/rsc/rc_light/branch_closed_disabled@2x.png b/utils/rsc/rc_light/branch_closed_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..91d7d651873177a9187a195b2fbc83e498bed70c Binary files /dev/null and b/utils/rsc/rc_light/branch_closed_disabled@2x.png differ diff --git a/utils/rsc/rc_light/branch_closed_focus.png b/utils/rsc/rc_light/branch_closed_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..2058d895ff170f8c03157fdfe1457776b4a872f4 Binary files /dev/null and b/utils/rsc/rc_light/branch_closed_focus.png differ diff --git a/utils/rsc/rc_light/branch_closed_focus@2x.png b/utils/rsc/rc_light/branch_closed_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..18d665af9a414ebba9917ecf0b68bf5825105b01 Binary files /dev/null and b/utils/rsc/rc_light/branch_closed_focus@2x.png differ diff --git a/utils/rsc/rc_light/branch_closed_pressed.png b/utils/rsc/rc_light/branch_closed_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..35f982fab8890adb6c2b616218ada89da703f95f Binary files /dev/null and b/utils/rsc/rc_light/branch_closed_pressed.png differ diff --git a/utils/rsc/rc_light/branch_closed_pressed@2x.png b/utils/rsc/rc_light/branch_closed_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2008d625698cfd29b6df82eb2479b380aa9771c5 Binary files /dev/null and b/utils/rsc/rc_light/branch_closed_pressed@2x.png differ diff --git a/utils/rsc/rc_light/branch_end.png b/utils/rsc/rc_light/branch_end.png new file mode 100644 index 0000000000000000000000000000000000000000..6b0bfe03d1f36bf48ebf861252b57a432dba88ca Binary files /dev/null and b/utils/rsc/rc_light/branch_end.png differ diff --git a/utils/rsc/rc_light/branch_end@2x.png b/utils/rsc/rc_light/branch_end@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9ce5439cb9eabc847cf0c99924faf1419e6f7c42 Binary files /dev/null and b/utils/rsc/rc_light/branch_end@2x.png differ diff --git a/utils/rsc/rc_light/branch_end_disabled.png b/utils/rsc/rc_light/branch_end_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..dfa9baa8dc2fc214e97910ec08d223d107a2f814 Binary files /dev/null and b/utils/rsc/rc_light/branch_end_disabled.png differ diff --git a/utils/rsc/rc_light/branch_end_disabled@2x.png b/utils/rsc/rc_light/branch_end_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8ef19e30d82e58554ae4fd66df28b43991c18bf3 Binary files /dev/null and b/utils/rsc/rc_light/branch_end_disabled@2x.png differ diff --git a/utils/rsc/rc_light/branch_end_focus.png b/utils/rsc/rc_light/branch_end_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..85f17bad7b09a480301f8cab9bae604b0ab977c8 Binary files /dev/null and b/utils/rsc/rc_light/branch_end_focus.png differ diff --git a/utils/rsc/rc_light/branch_end_focus@2x.png b/utils/rsc/rc_light/branch_end_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d756b29193b1958e595b58ba2c3532fe9c504a1b Binary files /dev/null and b/utils/rsc/rc_light/branch_end_focus@2x.png differ diff --git a/utils/rsc/rc_light/branch_end_pressed.png b/utils/rsc/rc_light/branch_end_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..7a868658ef543ffdc9c25145f5721b529ced1ec0 Binary files /dev/null and b/utils/rsc/rc_light/branch_end_pressed.png differ diff --git a/utils/rsc/rc_light/branch_end_pressed@2x.png b/utils/rsc/rc_light/branch_end_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..561e6ebf665cc1e188e77081c8fe8cdd982dce98 Binary files /dev/null and b/utils/rsc/rc_light/branch_end_pressed@2x.png differ diff --git a/utils/rsc/rc_light/branch_line.png b/utils/rsc/rc_light/branch_line.png new file mode 100644 index 0000000000000000000000000000000000000000..e55608ddc44041e6875d044582bb58e87a3a877e Binary files /dev/null and b/utils/rsc/rc_light/branch_line.png differ diff --git a/utils/rsc/rc_light/branch_line@2x.png b/utils/rsc/rc_light/branch_line@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..59967fd6045bf54d8f927ad7545b2a6d5188525d Binary files /dev/null and b/utils/rsc/rc_light/branch_line@2x.png differ diff --git a/utils/rsc/rc_light/branch_line_disabled.png b/utils/rsc/rc_light/branch_line_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..d758b7b6c78864f524ced3802cd3f8efff41e140 Binary files /dev/null and b/utils/rsc/rc_light/branch_line_disabled.png differ diff --git a/utils/rsc/rc_light/branch_line_disabled@2x.png b/utils/rsc/rc_light/branch_line_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a35c3a66db3defd6cb02579a9cb358888cdf1e4c Binary files /dev/null and b/utils/rsc/rc_light/branch_line_disabled@2x.png differ diff --git a/utils/rsc/rc_light/branch_line_focus.png b/utils/rsc/rc_light/branch_line_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..800cc587c483dbee955da409427b59288831b1fb Binary files /dev/null and b/utils/rsc/rc_light/branch_line_focus.png differ diff --git a/utils/rsc/rc_light/branch_line_focus@2x.png b/utils/rsc/rc_light/branch_line_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7d21d64a9024ddf142156b8570b66784e154bc49 Binary files /dev/null and b/utils/rsc/rc_light/branch_line_focus@2x.png differ diff --git a/utils/rsc/rc_light/branch_line_pressed.png b/utils/rsc/rc_light/branch_line_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..63804657946000d765af42a2280b81b69c7a38f2 Binary files /dev/null and b/utils/rsc/rc_light/branch_line_pressed.png differ diff --git a/utils/rsc/rc_light/branch_line_pressed@2x.png b/utils/rsc/rc_light/branch_line_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7ca30cd61e1160f5cc8265684f007deedd8d6fbb Binary files /dev/null and b/utils/rsc/rc_light/branch_line_pressed@2x.png differ diff --git a/utils/rsc/rc_light/branch_more.png b/utils/rsc/rc_light/branch_more.png new file mode 100644 index 0000000000000000000000000000000000000000..14012929504b155d6330f54cb8d25949bb38134d Binary files /dev/null and b/utils/rsc/rc_light/branch_more.png differ diff --git a/utils/rsc/rc_light/branch_more@2x.png b/utils/rsc/rc_light/branch_more@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5a3b1e98fdbcfbf7fa67a1f11dc08244374a2df1 Binary files /dev/null and b/utils/rsc/rc_light/branch_more@2x.png differ diff --git a/utils/rsc/rc_light/branch_more_disabled.png b/utils/rsc/rc_light/branch_more_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..d801611bb6675386f58aff4f9138938bc182af72 Binary files /dev/null and b/utils/rsc/rc_light/branch_more_disabled.png differ diff --git a/utils/rsc/rc_light/branch_more_disabled@2x.png b/utils/rsc/rc_light/branch_more_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2505e2a7c95c93a6c9572e2dfcab3a228b633627 Binary files /dev/null and b/utils/rsc/rc_light/branch_more_disabled@2x.png differ diff --git a/utils/rsc/rc_light/branch_more_focus.png b/utils/rsc/rc_light/branch_more_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..be5b2cbfaf9abea347dd0404091e459ed3f116f8 Binary files /dev/null and b/utils/rsc/rc_light/branch_more_focus.png differ diff --git a/utils/rsc/rc_light/branch_more_focus@2x.png b/utils/rsc/rc_light/branch_more_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ca0f99e0e84d0a37ac142c34db23514d0d864070 Binary files /dev/null and b/utils/rsc/rc_light/branch_more_focus@2x.png differ diff --git a/utils/rsc/rc_light/branch_more_pressed.png b/utils/rsc/rc_light/branch_more_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..6e744b78e6c0a49ab95cc571691e5b0b201653dc Binary files /dev/null and b/utils/rsc/rc_light/branch_more_pressed.png differ diff --git a/utils/rsc/rc_light/branch_more_pressed@2x.png b/utils/rsc/rc_light/branch_more_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fdaf01f03a444512deefd7a11a3349516060683a Binary files /dev/null and b/utils/rsc/rc_light/branch_more_pressed@2x.png differ diff --git a/utils/rsc/rc_light/branch_open.png b/utils/rsc/rc_light/branch_open.png new file mode 100644 index 0000000000000000000000000000000000000000..e43b940cb937f25691aae96e4e3ea0f4e450833d Binary files /dev/null and b/utils/rsc/rc_light/branch_open.png differ diff --git a/utils/rsc/rc_light/branch_open@2x.png b/utils/rsc/rc_light/branch_open@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..691e38c1800a8867f92fe00beca6b836bdb01802 Binary files /dev/null and b/utils/rsc/rc_light/branch_open@2x.png differ diff --git a/utils/rsc/rc_light/branch_open_disabled.png b/utils/rsc/rc_light/branch_open_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9e445449edad920d2de14891da1f782ae9897324 Binary files /dev/null and b/utils/rsc/rc_light/branch_open_disabled.png differ diff --git a/utils/rsc/rc_light/branch_open_disabled@2x.png b/utils/rsc/rc_light/branch_open_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..246bdbbedfcb5fb4aca92cb54f63dbb50d53ff1e Binary files /dev/null and b/utils/rsc/rc_light/branch_open_disabled@2x.png differ diff --git a/utils/rsc/rc_light/branch_open_focus.png b/utils/rsc/rc_light/branch_open_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..a4b332e3ed9c29876248e3b7d2195c6f265b0222 Binary files /dev/null and b/utils/rsc/rc_light/branch_open_focus.png differ diff --git a/utils/rsc/rc_light/branch_open_focus@2x.png b/utils/rsc/rc_light/branch_open_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..27c8dcacf0af2297ffd30f924efcfc637f942ee5 Binary files /dev/null and b/utils/rsc/rc_light/branch_open_focus@2x.png differ diff --git a/utils/rsc/rc_light/branch_open_pressed.png b/utils/rsc/rc_light/branch_open_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..205f9414ec35740290c325a86d08cee8c5b251ac Binary files /dev/null and b/utils/rsc/rc_light/branch_open_pressed.png differ diff --git a/utils/rsc/rc_light/branch_open_pressed@2x.png b/utils/rsc/rc_light/branch_open_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d09878a613a2811c9e6f4dd9ebbf1e0c10d85b5f Binary files /dev/null and b/utils/rsc/rc_light/branch_open_pressed@2x.png differ diff --git a/utils/rsc/rc_light/checkbox_checked.png b/utils/rsc/rc_light/checkbox_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..f63f2b38fab618da63bff593247e38ba91e6631a Binary files /dev/null and b/utils/rsc/rc_light/checkbox_checked.png differ diff --git a/utils/rsc/rc_light/checkbox_checked@2x.png b/utils/rsc/rc_light/checkbox_checked@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7617ed7dc3b439986dc765b2787f8454e53ca2fe Binary files /dev/null and b/utils/rsc/rc_light/checkbox_checked@2x.png differ diff --git a/utils/rsc/rc_light/checkbox_checked_disabled.png b/utils/rsc/rc_light/checkbox_checked_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..2eab1ba0cf9a1114b47cea7d899929400bd77e34 Binary files /dev/null and b/utils/rsc/rc_light/checkbox_checked_disabled.png differ diff --git a/utils/rsc/rc_light/checkbox_checked_disabled@2x.png b/utils/rsc/rc_light/checkbox_checked_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..518d55d5ee0c316f5fa56fa198fcf2cb1bc53cd2 Binary files /dev/null and b/utils/rsc/rc_light/checkbox_checked_disabled@2x.png differ diff --git a/utils/rsc/rc_light/checkbox_checked_focus.png b/utils/rsc/rc_light/checkbox_checked_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..fccb71edc125bd08f0b7a5dee25ee03d382aeea3 Binary files /dev/null and b/utils/rsc/rc_light/checkbox_checked_focus.png differ diff --git a/utils/rsc/rc_light/checkbox_checked_focus@2x.png b/utils/rsc/rc_light/checkbox_checked_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e12217d0a137a68d839ced88dfdc53c73f29ab7d Binary files /dev/null and b/utils/rsc/rc_light/checkbox_checked_focus@2x.png differ diff --git a/utils/rsc/rc_light/checkbox_checked_pressed.png b/utils/rsc/rc_light/checkbox_checked_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..d93ca9903515453f4198175d205e69062cbf5961 Binary files /dev/null and b/utils/rsc/rc_light/checkbox_checked_pressed.png differ diff --git a/utils/rsc/rc_light/checkbox_checked_pressed@2x.png b/utils/rsc/rc_light/checkbox_checked_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7ee1d3514d76a422d35b447b44665ad4f1b46d37 Binary files /dev/null and b/utils/rsc/rc_light/checkbox_checked_pressed@2x.png differ diff --git a/utils/rsc/rc_light/checkbox_indeterminate.png b/utils/rsc/rc_light/checkbox_indeterminate.png new file mode 100644 index 0000000000000000000000000000000000000000..8f4d0f161f1babd0002b3e13b91ac4baccbc7c2f Binary files /dev/null and b/utils/rsc/rc_light/checkbox_indeterminate.png differ diff --git a/utils/rsc/rc_light/checkbox_indeterminate@2x.png b/utils/rsc/rc_light/checkbox_indeterminate@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3d106399b30f90a690538d6a8d5a92c4c3f6fd6a Binary files /dev/null and b/utils/rsc/rc_light/checkbox_indeterminate@2x.png differ diff --git a/utils/rsc/rc_light/checkbox_indeterminate_disabled.png b/utils/rsc/rc_light/checkbox_indeterminate_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..0a093c819d1ebb22a820f669d224eef2322b4312 Binary files /dev/null and b/utils/rsc/rc_light/checkbox_indeterminate_disabled.png differ diff --git a/utils/rsc/rc_light/checkbox_indeterminate_disabled@2x.png b/utils/rsc/rc_light/checkbox_indeterminate_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..06db251f9d3f06e4095a9b7cdc590f31fae731d8 Binary files /dev/null and b/utils/rsc/rc_light/checkbox_indeterminate_disabled@2x.png differ diff --git a/utils/rsc/rc_light/checkbox_indeterminate_focus.png b/utils/rsc/rc_light/checkbox_indeterminate_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..33fd572bd5da908201928da694a97dec85dd0ac2 Binary files /dev/null and b/utils/rsc/rc_light/checkbox_indeterminate_focus.png differ diff --git a/utils/rsc/rc_light/checkbox_indeterminate_focus@2x.png b/utils/rsc/rc_light/checkbox_indeterminate_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..691ddf1da5b8e09a53e38f89919db98e75a3078a Binary files /dev/null and b/utils/rsc/rc_light/checkbox_indeterminate_focus@2x.png differ diff --git a/utils/rsc/rc_light/checkbox_indeterminate_pressed.png b/utils/rsc/rc_light/checkbox_indeterminate_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..2aff90928b57aa7f1f10bf31e3a0c9cdd218c6ca Binary files /dev/null and b/utils/rsc/rc_light/checkbox_indeterminate_pressed.png differ diff --git a/utils/rsc/rc_light/checkbox_indeterminate_pressed@2x.png b/utils/rsc/rc_light/checkbox_indeterminate_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fb4e03861146cf258a7f0f8f660141fe8c94151a Binary files /dev/null and b/utils/rsc/rc_light/checkbox_indeterminate_pressed@2x.png differ diff --git a/utils/rsc/rc_light/checkbox_unchecked.png b/utils/rsc/rc_light/checkbox_unchecked.png new file mode 100644 index 0000000000000000000000000000000000000000..3c06087845dbb428d0e7dd696bcf0143cdaf825b Binary files /dev/null and b/utils/rsc/rc_light/checkbox_unchecked.png differ diff --git a/utils/rsc/rc_light/checkbox_unchecked@2x.png b/utils/rsc/rc_light/checkbox_unchecked@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fa064878689ce07db2c1b40b21eb3692aa3e0284 Binary files /dev/null and b/utils/rsc/rc_light/checkbox_unchecked@2x.png differ diff --git a/utils/rsc/rc_light/checkbox_unchecked_disabled.png b/utils/rsc/rc_light/checkbox_unchecked_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..bba927e5015a81d332a37a016661ebbeb92ab76d Binary files /dev/null and b/utils/rsc/rc_light/checkbox_unchecked_disabled.png differ diff --git a/utils/rsc/rc_light/checkbox_unchecked_disabled@2x.png b/utils/rsc/rc_light/checkbox_unchecked_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..592d5949a3b70b6bc49501887c42fc1fe1187f76 Binary files /dev/null and b/utils/rsc/rc_light/checkbox_unchecked_disabled@2x.png differ diff --git a/utils/rsc/rc_light/checkbox_unchecked_focus.png b/utils/rsc/rc_light/checkbox_unchecked_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..7e460184aacde17678523721508b2335fb0c52a0 Binary files /dev/null and b/utils/rsc/rc_light/checkbox_unchecked_focus.png differ diff --git a/utils/rsc/rc_light/checkbox_unchecked_focus@2x.png b/utils/rsc/rc_light/checkbox_unchecked_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3f96917b5bcdf880d14bb0ebaf35280ca1367328 Binary files /dev/null and b/utils/rsc/rc_light/checkbox_unchecked_focus@2x.png differ diff --git a/utils/rsc/rc_light/checkbox_unchecked_pressed.png b/utils/rsc/rc_light/checkbox_unchecked_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..5fd771d1affd8e97f7e8e6c9111319c7b8422c41 Binary files /dev/null and b/utils/rsc/rc_light/checkbox_unchecked_pressed.png differ diff --git a/utils/rsc/rc_light/checkbox_unchecked_pressed@2x.png b/utils/rsc/rc_light/checkbox_unchecked_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..57f25fbae4e4ccb5c09fbeb01d3e083501622b92 Binary files /dev/null and b/utils/rsc/rc_light/checkbox_unchecked_pressed@2x.png differ diff --git a/utils/rsc/rc_light/line_horizontal.png b/utils/rsc/rc_light/line_horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..22a0b1e2bda682c4908f1e653657f55c80154c6f Binary files /dev/null and b/utils/rsc/rc_light/line_horizontal.png differ diff --git a/utils/rsc/rc_light/line_horizontal@2x.png b/utils/rsc/rc_light/line_horizontal@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8bd474944f6665d072ee68e7513c8365d91de263 Binary files /dev/null and b/utils/rsc/rc_light/line_horizontal@2x.png differ diff --git a/utils/rsc/rc_light/line_horizontal_disabled.png b/utils/rsc/rc_light/line_horizontal_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3dc9c69e0a22825f6b4fd9affcd423ed81bf5de3 Binary files /dev/null and b/utils/rsc/rc_light/line_horizontal_disabled.png differ diff --git a/utils/rsc/rc_light/line_horizontal_disabled@2x.png b/utils/rsc/rc_light/line_horizontal_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a2d3664af470d4f350338ae84156dadd7fb7028d Binary files /dev/null and b/utils/rsc/rc_light/line_horizontal_disabled@2x.png differ diff --git a/utils/rsc/rc_light/line_horizontal_focus.png b/utils/rsc/rc_light/line_horizontal_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..136faa84c730952d0755ceebc09f2ebe16cab30f Binary files /dev/null and b/utils/rsc/rc_light/line_horizontal_focus.png differ diff --git a/utils/rsc/rc_light/line_horizontal_focus@2x.png b/utils/rsc/rc_light/line_horizontal_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..398d224326c262d712e86d3d93ae72e29878754a Binary files /dev/null and b/utils/rsc/rc_light/line_horizontal_focus@2x.png differ diff --git a/utils/rsc/rc_light/line_horizontal_pressed.png b/utils/rsc/rc_light/line_horizontal_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..e2027b14ed008c7a73d50a243b549db2588324de Binary files /dev/null and b/utils/rsc/rc_light/line_horizontal_pressed.png differ diff --git a/utils/rsc/rc_light/line_horizontal_pressed@2x.png b/utils/rsc/rc_light/line_horizontal_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..24b83299bcf314b563ef5b240284bdf5c5a65bee Binary files /dev/null and b/utils/rsc/rc_light/line_horizontal_pressed@2x.png differ diff --git a/utils/rsc/rc_light/line_vertical.png b/utils/rsc/rc_light/line_vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..0a4c5f36451087f0c95b8aa804e534d1fa2399d7 Binary files /dev/null and b/utils/rsc/rc_light/line_vertical.png differ diff --git a/utils/rsc/rc_light/line_vertical@2x.png b/utils/rsc/rc_light/line_vertical@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e67ccf52bbe14ac3ec41c453f54df7c655fedcbe Binary files /dev/null and b/utils/rsc/rc_light/line_vertical@2x.png differ diff --git a/utils/rsc/rc_light/line_vertical_disabled.png b/utils/rsc/rc_light/line_vertical_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9700752d912bc97de4c64ed249098375ad042299 Binary files /dev/null and b/utils/rsc/rc_light/line_vertical_disabled.png differ diff --git a/utils/rsc/rc_light/line_vertical_disabled@2x.png b/utils/rsc/rc_light/line_vertical_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0f57c568f6d28edfc8e9118042ef1c739db0d717 Binary files /dev/null and b/utils/rsc/rc_light/line_vertical_disabled@2x.png differ diff --git a/utils/rsc/rc_light/line_vertical_focus.png b/utils/rsc/rc_light/line_vertical_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..15ef20825437205a95311d20eb0544567c0e16d8 Binary files /dev/null and b/utils/rsc/rc_light/line_vertical_focus.png differ diff --git a/utils/rsc/rc_light/line_vertical_focus@2x.png b/utils/rsc/rc_light/line_vertical_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a35e97ed0afaccc739bc41aa9684a1bf8764c394 Binary files /dev/null and b/utils/rsc/rc_light/line_vertical_focus@2x.png differ diff --git a/utils/rsc/rc_light/line_vertical_pressed.png b/utils/rsc/rc_light/line_vertical_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..7399cd38ed378d8451df98bdac539cfd8cd15cbf Binary files /dev/null and b/utils/rsc/rc_light/line_vertical_pressed.png differ diff --git a/utils/rsc/rc_light/line_vertical_pressed@2x.png b/utils/rsc/rc_light/line_vertical_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e018b9af84508e103e77ab01f4130b0c49d747ab Binary files /dev/null and b/utils/rsc/rc_light/line_vertical_pressed@2x.png differ diff --git a/utils/rsc/rc_light/radio_checked.png b/utils/rsc/rc_light/radio_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..878b6c53ca712fa52fe63de8e328c6f6a754e06d Binary files /dev/null and b/utils/rsc/rc_light/radio_checked.png differ diff --git a/utils/rsc/rc_light/radio_checked@2x.png b/utils/rsc/rc_light/radio_checked@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ed20cd4cf59145ed9129ff13370dc5738c28717a Binary files /dev/null and b/utils/rsc/rc_light/radio_checked@2x.png differ diff --git a/utils/rsc/rc_light/radio_checked_disabled.png b/utils/rsc/rc_light/radio_checked_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..1aa26ee00bd5a9ce1f18ff546a07bf38c34f55e5 Binary files /dev/null and b/utils/rsc/rc_light/radio_checked_disabled.png differ diff --git a/utils/rsc/rc_light/radio_checked_disabled@2x.png b/utils/rsc/rc_light/radio_checked_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..72b69d59b455c82c9fd6d836518563e43cf0852d Binary files /dev/null and b/utils/rsc/rc_light/radio_checked_disabled@2x.png differ diff --git a/utils/rsc/rc_light/radio_checked_focus.png b/utils/rsc/rc_light/radio_checked_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..90a54c6e147dc3cbe74ebb03a68ab711493681b7 Binary files /dev/null and b/utils/rsc/rc_light/radio_checked_focus.png differ diff --git a/utils/rsc/rc_light/radio_checked_focus@2x.png b/utils/rsc/rc_light/radio_checked_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..81771885f454f93aa6c5ef5797243ca8963ba746 Binary files /dev/null and b/utils/rsc/rc_light/radio_checked_focus@2x.png differ diff --git a/utils/rsc/rc_light/radio_checked_pressed.png b/utils/rsc/rc_light/radio_checked_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..10170e374bc19ac4bad90e3aa406284f0c6fd3cc Binary files /dev/null and b/utils/rsc/rc_light/radio_checked_pressed.png differ diff --git a/utils/rsc/rc_light/radio_checked_pressed@2x.png b/utils/rsc/rc_light/radio_checked_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..378608298a764e18d79d60c16827dd132ecbf48b Binary files /dev/null and b/utils/rsc/rc_light/radio_checked_pressed@2x.png differ diff --git a/utils/rsc/rc_light/radio_unchecked.png b/utils/rsc/rc_light/radio_unchecked.png new file mode 100644 index 0000000000000000000000000000000000000000..639a55480c306760aea335c3ae6d76dd3599bc87 Binary files /dev/null and b/utils/rsc/rc_light/radio_unchecked.png differ diff --git a/utils/rsc/rc_light/radio_unchecked@2x.png b/utils/rsc/rc_light/radio_unchecked@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a2f23fd6fadcf3d8df123c5ab57a458be159b538 Binary files /dev/null and b/utils/rsc/rc_light/radio_unchecked@2x.png differ diff --git a/utils/rsc/rc_light/radio_unchecked_disabled.png b/utils/rsc/rc_light/radio_unchecked_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..6f7424ca789b69fe823be10d1bb87b886aa8cf70 Binary files /dev/null and b/utils/rsc/rc_light/radio_unchecked_disabled.png differ diff --git a/utils/rsc/rc_light/radio_unchecked_disabled@2x.png b/utils/rsc/rc_light/radio_unchecked_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bf9330f240526f2862fab7a2966b99e21d99ce9a Binary files /dev/null and b/utils/rsc/rc_light/radio_unchecked_disabled@2x.png differ diff --git a/utils/rsc/rc_light/radio_unchecked_focus.png b/utils/rsc/rc_light/radio_unchecked_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..2316d7872ce225c1f38a5c4c19d624b9319a2c5c Binary files /dev/null and b/utils/rsc/rc_light/radio_unchecked_focus.png differ diff --git a/utils/rsc/rc_light/radio_unchecked_focus@2x.png b/utils/rsc/rc_light/radio_unchecked_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9695890babd83acd13888368e24fc2afb90848a1 Binary files /dev/null and b/utils/rsc/rc_light/radio_unchecked_focus@2x.png differ diff --git a/utils/rsc/rc_light/radio_unchecked_pressed.png b/utils/rsc/rc_light/radio_unchecked_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..2f2a7ba214bc6213a649038fbe829020d7728efc Binary files /dev/null and b/utils/rsc/rc_light/radio_unchecked_pressed.png differ diff --git a/utils/rsc/rc_light/radio_unchecked_pressed@2x.png b/utils/rsc/rc_light/radio_unchecked_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..22a7e713937697b98d66f3b8e9bf51d1955525cd Binary files /dev/null and b/utils/rsc/rc_light/radio_unchecked_pressed@2x.png differ diff --git a/utils/rsc/rc_light/toolbar_move_horizontal.png b/utils/rsc/rc_light/toolbar_move_horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..a1109caf89ce96ab689fe7483f1f08a7beb155c3 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_horizontal.png differ diff --git a/utils/rsc/rc_light/toolbar_move_horizontal@2x.png b/utils/rsc/rc_light/toolbar_move_horizontal@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..69bb6347d8eec0037ae0431e22275375d79e0ef3 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_horizontal@2x.png differ diff --git a/utils/rsc/rc_light/toolbar_move_horizontal_disabled.png b/utils/rsc/rc_light/toolbar_move_horizontal_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..e11055a6a7f8caf75f65b2ae09a47b818aab63bb Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_horizontal_disabled.png differ diff --git a/utils/rsc/rc_light/toolbar_move_horizontal_disabled@2x.png b/utils/rsc/rc_light/toolbar_move_horizontal_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9085b627eb3f46dd926633ae7c2eb7449830d80d Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_horizontal_disabled@2x.png differ diff --git a/utils/rsc/rc_light/toolbar_move_horizontal_focus.png b/utils/rsc/rc_light/toolbar_move_horizontal_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..3c0be5a0e51cf5a2f4561dfc10cd52775dc30534 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_horizontal_focus.png differ diff --git a/utils/rsc/rc_light/toolbar_move_horizontal_focus@2x.png b/utils/rsc/rc_light/toolbar_move_horizontal_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f01973d05d8135f5128266c820fbcfd24a042c24 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_horizontal_focus@2x.png differ diff --git a/utils/rsc/rc_light/toolbar_move_horizontal_pressed.png b/utils/rsc/rc_light/toolbar_move_horizontal_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..94c0f5b6db2cf006b194cbb1945c3f68f9e6495c Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_horizontal_pressed.png differ diff --git a/utils/rsc/rc_light/toolbar_move_horizontal_pressed@2x.png b/utils/rsc/rc_light/toolbar_move_horizontal_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..612ea774fdb0a5ceee7da4a621ad3ef87286d94f Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_horizontal_pressed@2x.png differ diff --git a/utils/rsc/rc_light/toolbar_move_vertical.png b/utils/rsc/rc_light/toolbar_move_vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..b16c48c40bedc7e07e3a86c1847d349a65623150 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_vertical.png differ diff --git a/utils/rsc/rc_light/toolbar_move_vertical@2x.png b/utils/rsc/rc_light/toolbar_move_vertical@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..853962cd646000c6f27d82947c32f47794d743ec Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_vertical@2x.png differ diff --git a/utils/rsc/rc_light/toolbar_move_vertical_disabled.png b/utils/rsc/rc_light/toolbar_move_vertical_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9b3caec07d9ddd5e17f7c97ac54c8aca50e84202 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_vertical_disabled.png differ diff --git a/utils/rsc/rc_light/toolbar_move_vertical_disabled@2x.png b/utils/rsc/rc_light/toolbar_move_vertical_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bdda6796a2d6503002c68763c0aaf3216a54c356 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_vertical_disabled@2x.png differ diff --git a/utils/rsc/rc_light/toolbar_move_vertical_focus.png b/utils/rsc/rc_light/toolbar_move_vertical_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..6a432a4ba065dcba6a1789bdb901bbcde0b6e397 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_vertical_focus.png differ diff --git a/utils/rsc/rc_light/toolbar_move_vertical_focus@2x.png b/utils/rsc/rc_light/toolbar_move_vertical_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..817a8da55b6c5874eaf5126619524107fd8f22cf Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_vertical_focus@2x.png differ diff --git a/utils/rsc/rc_light/toolbar_move_vertical_pressed.png b/utils/rsc/rc_light/toolbar_move_vertical_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..50228af7b83ab26c5c3f6c5e0a47225f02dea6e6 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_vertical_pressed.png differ diff --git a/utils/rsc/rc_light/toolbar_move_vertical_pressed@2x.png b/utils/rsc/rc_light/toolbar_move_vertical_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1946791add3e39c17b445ad34d9b93d6c9c095b6 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_move_vertical_pressed@2x.png differ diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal.png b/utils/rsc/rc_light/toolbar_separator_horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..f6661b4b1d2d0393855851c9349553ecd0088f53 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_horizontal.png differ diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal@2x.png b/utils/rsc/rc_light/toolbar_separator_horizontal@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..77cadc21754545e3e5b58d95da8736f94016b33b Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_horizontal@2x.png differ diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal_disabled.png b/utils/rsc/rc_light/toolbar_separator_horizontal_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..a65e13e466a3fc0cffecb1f6c854ab976d84072b Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_horizontal_disabled.png differ diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal_disabled@2x.png b/utils/rsc/rc_light/toolbar_separator_horizontal_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..77b9abcaf168ff16949dafb8c9944e759b4d7c8d Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_horizontal_disabled@2x.png differ diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal_focus.png b/utils/rsc/rc_light/toolbar_separator_horizontal_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..843633ffa0a215ed0f903365ac869ccbd7ed9501 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_horizontal_focus.png differ diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal_focus@2x.png b/utils/rsc/rc_light/toolbar_separator_horizontal_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..21d4011fc09f17dc21621b086561ca1d9ff19757 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_horizontal_focus@2x.png differ diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal_pressed.png b/utils/rsc/rc_light/toolbar_separator_horizontal_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..edf05752f7cc915adbcb42b1f061b5b401aa03d2 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_horizontal_pressed.png differ diff --git a/utils/rsc/rc_light/toolbar_separator_horizontal_pressed@2x.png b/utils/rsc/rc_light/toolbar_separator_horizontal_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..977ec62a96f00d5c8095f2e765955ea17fc87976 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_horizontal_pressed@2x.png differ diff --git a/utils/rsc/rc_light/toolbar_separator_vertical.png b/utils/rsc/rc_light/toolbar_separator_vertical.png new file mode 100644 index 0000000000000000000000000000000000000000..2776d87b55f13a288b0c8c3ea7657139ee1109a7 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_vertical.png differ diff --git a/utils/rsc/rc_light/toolbar_separator_vertical@2x.png b/utils/rsc/rc_light/toolbar_separator_vertical@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ab9e773a881358ada1977e20ef1bd98d4481bc1e Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_vertical@2x.png differ diff --git a/utils/rsc/rc_light/toolbar_separator_vertical_disabled.png b/utils/rsc/rc_light/toolbar_separator_vertical_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..cb443940bcabf340aa6ff32107f4aac9a7fba175 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_vertical_disabled.png differ diff --git a/utils/rsc/rc_light/toolbar_separator_vertical_disabled@2x.png b/utils/rsc/rc_light/toolbar_separator_vertical_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f4e241ab2dcfca237a1aab138bdeb3b8432c8886 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_vertical_disabled@2x.png differ diff --git a/utils/rsc/rc_light/toolbar_separator_vertical_focus.png b/utils/rsc/rc_light/toolbar_separator_vertical_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..4a45d55c0a7f75b7497e69079b8654cfbb82ebe9 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_vertical_focus.png differ diff --git a/utils/rsc/rc_light/toolbar_separator_vertical_focus@2x.png b/utils/rsc/rc_light/toolbar_separator_vertical_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c58d8d120c94cb98be3fa68f6d18628c343ad82e Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_vertical_focus@2x.png differ diff --git a/utils/rsc/rc_light/toolbar_separator_vertical_pressed.png b/utils/rsc/rc_light/toolbar_separator_vertical_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..408fa169a2d10ec8710fb7efcc6e164e9feb4ce9 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_vertical_pressed.png differ diff --git a/utils/rsc/rc_light/toolbar_separator_vertical_pressed@2x.png b/utils/rsc/rc_light/toolbar_separator_vertical_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..92feb3652c483a8a3aec5490db82d55f95487769 Binary files /dev/null and b/utils/rsc/rc_light/toolbar_separator_vertical_pressed@2x.png differ diff --git a/utils/rsc/rc_light/transparent.png b/utils/rsc/rc_light/transparent.png new file mode 100644 index 0000000000000000000000000000000000000000..3a95111e51595aa94007fbb3345f2e1c6f2d3a15 Binary files /dev/null and b/utils/rsc/rc_light/transparent.png differ diff --git a/utils/rsc/rc_light/transparent@2x.png b/utils/rsc/rc_light/transparent@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4c4b952259520cacaeb5fac54556987170b3bc70 Binary files /dev/null and b/utils/rsc/rc_light/transparent@2x.png differ diff --git a/utils/rsc/rc_light/transparent_disabled.png b/utils/rsc/rc_light/transparent_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3a95111e51595aa94007fbb3345f2e1c6f2d3a15 Binary files /dev/null and b/utils/rsc/rc_light/transparent_disabled.png differ diff --git a/utils/rsc/rc_light/transparent_disabled@2x.png b/utils/rsc/rc_light/transparent_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4c4b952259520cacaeb5fac54556987170b3bc70 Binary files /dev/null and b/utils/rsc/rc_light/transparent_disabled@2x.png differ diff --git a/utils/rsc/rc_light/transparent_focus.png b/utils/rsc/rc_light/transparent_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..3a95111e51595aa94007fbb3345f2e1c6f2d3a15 Binary files /dev/null and b/utils/rsc/rc_light/transparent_focus.png differ diff --git a/utils/rsc/rc_light/transparent_focus@2x.png b/utils/rsc/rc_light/transparent_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4c4b952259520cacaeb5fac54556987170b3bc70 Binary files /dev/null and b/utils/rsc/rc_light/transparent_focus@2x.png differ diff --git a/utils/rsc/rc_light/transparent_pressed.png b/utils/rsc/rc_light/transparent_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..3a95111e51595aa94007fbb3345f2e1c6f2d3a15 Binary files /dev/null and b/utils/rsc/rc_light/transparent_pressed.png differ diff --git a/utils/rsc/rc_light/transparent_pressed@2x.png b/utils/rsc/rc_light/transparent_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4c4b952259520cacaeb5fac54556987170b3bc70 Binary files /dev/null and b/utils/rsc/rc_light/transparent_pressed@2x.png differ diff --git a/utils/rsc/rc_light/window_close.png b/utils/rsc/rc_light/window_close.png new file mode 100644 index 0000000000000000000000000000000000000000..607170baec87d280727e478769257c4c61bca81f Binary files /dev/null and b/utils/rsc/rc_light/window_close.png differ diff --git a/utils/rsc/rc_light/window_close@2x.png b/utils/rsc/rc_light/window_close@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..607f894a6f2a01effb76118d255c4d9da4187860 Binary files /dev/null and b/utils/rsc/rc_light/window_close@2x.png differ diff --git a/utils/rsc/rc_light/window_close_disabled.png b/utils/rsc/rc_light/window_close_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..449deec63f6c161640505d134478e191798b10a9 Binary files /dev/null and b/utils/rsc/rc_light/window_close_disabled.png differ diff --git a/utils/rsc/rc_light/window_close_disabled@2x.png b/utils/rsc/rc_light/window_close_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..eda9fb4ce0fd67efa74720fe0b590652e47cd5a1 Binary files /dev/null and b/utils/rsc/rc_light/window_close_disabled@2x.png differ diff --git a/utils/rsc/rc_light/window_close_focus.png b/utils/rsc/rc_light/window_close_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..1cd49c73e473d219431b165266a99df7c83e7565 Binary files /dev/null and b/utils/rsc/rc_light/window_close_focus.png differ diff --git a/utils/rsc/rc_light/window_close_focus@2x.png b/utils/rsc/rc_light/window_close_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a13da212905e9cbebf52e836d5997e34ed12f7bc Binary files /dev/null and b/utils/rsc/rc_light/window_close_focus@2x.png differ diff --git a/utils/rsc/rc_light/window_close_pressed.png b/utils/rsc/rc_light/window_close_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..c5e2a9143238f169fc48b890299b92969f22d9d5 Binary files /dev/null and b/utils/rsc/rc_light/window_close_pressed.png differ diff --git a/utils/rsc/rc_light/window_close_pressed@2x.png b/utils/rsc/rc_light/window_close_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..278288ed1b8570e7c118cb23199e9754d15458c5 Binary files /dev/null and b/utils/rsc/rc_light/window_close_pressed@2x.png differ diff --git a/utils/rsc/rc_light/window_grip.png b/utils/rsc/rc_light/window_grip.png new file mode 100644 index 0000000000000000000000000000000000000000..c03b1dce3c3dcda2aba76e41c8852d397f424594 Binary files /dev/null and b/utils/rsc/rc_light/window_grip.png differ diff --git a/utils/rsc/rc_light/window_grip@2x.png b/utils/rsc/rc_light/window_grip@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7074bd6d2ff3d4aaade701d07b1b51e462f76992 Binary files /dev/null and b/utils/rsc/rc_light/window_grip@2x.png differ diff --git a/utils/rsc/rc_light/window_grip_disabled.png b/utils/rsc/rc_light/window_grip_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..3c479884b2686a5f1e9d9bd7e5bfed36a8d3f977 Binary files /dev/null and b/utils/rsc/rc_light/window_grip_disabled.png differ diff --git a/utils/rsc/rc_light/window_grip_disabled@2x.png b/utils/rsc/rc_light/window_grip_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..eb4a063a73c36e62ea0714caa18a8737defd17c2 Binary files /dev/null and b/utils/rsc/rc_light/window_grip_disabled@2x.png differ diff --git a/utils/rsc/rc_light/window_grip_focus.png b/utils/rsc/rc_light/window_grip_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..46c77d37a65e05aff81c02b063a7213c7fb73955 Binary files /dev/null and b/utils/rsc/rc_light/window_grip_focus.png differ diff --git a/utils/rsc/rc_light/window_grip_focus@2x.png b/utils/rsc/rc_light/window_grip_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f487c6adb72221fd94057f3fec1b68e13cdd9498 Binary files /dev/null and b/utils/rsc/rc_light/window_grip_focus@2x.png differ diff --git a/utils/rsc/rc_light/window_grip_pressed.png b/utils/rsc/rc_light/window_grip_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..a4d07590502e8170c2bda4b338e60c57f4d2ff2e Binary files /dev/null and b/utils/rsc/rc_light/window_grip_pressed.png differ diff --git a/utils/rsc/rc_light/window_grip_pressed@2x.png b/utils/rsc/rc_light/window_grip_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..54dc3d8a8d55e66f8cd951bc040b9b580491de70 Binary files /dev/null and b/utils/rsc/rc_light/window_grip_pressed@2x.png differ diff --git a/utils/rsc/rc_light/window_minimize.png b/utils/rsc/rc_light/window_minimize.png new file mode 100644 index 0000000000000000000000000000000000000000..9e1a7f12ceab6f6f5c0ab6690a6f32f9bc7cdfe7 Binary files /dev/null and b/utils/rsc/rc_light/window_minimize.png differ diff --git a/utils/rsc/rc_light/window_minimize@2x.png b/utils/rsc/rc_light/window_minimize@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..dcd2570cc1018ef90d0f23e17925aa3604597fa2 Binary files /dev/null and b/utils/rsc/rc_light/window_minimize@2x.png differ diff --git a/utils/rsc/rc_light/window_minimize_disabled.png b/utils/rsc/rc_light/window_minimize_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..9fd0ef16937bb4608fd90af1deab88adab58d9df Binary files /dev/null and b/utils/rsc/rc_light/window_minimize_disabled.png differ diff --git a/utils/rsc/rc_light/window_minimize_disabled@2x.png b/utils/rsc/rc_light/window_minimize_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..251cefcced3cdb3d041bd85e5831502db38d0010 Binary files /dev/null and b/utils/rsc/rc_light/window_minimize_disabled@2x.png differ diff --git a/utils/rsc/rc_light/window_minimize_focus.png b/utils/rsc/rc_light/window_minimize_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..4d748783b02fe7f165277a48dc34b12c64b0a0ef Binary files /dev/null and b/utils/rsc/rc_light/window_minimize_focus.png differ diff --git a/utils/rsc/rc_light/window_minimize_focus@2x.png b/utils/rsc/rc_light/window_minimize_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..97901fed5951f2a24b9ee204dc78b1611a70d96c Binary files /dev/null and b/utils/rsc/rc_light/window_minimize_focus@2x.png differ diff --git a/utils/rsc/rc_light/window_minimize_pressed.png b/utils/rsc/rc_light/window_minimize_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..78de6557bb99d6f307c345e2cbd974e3af5ba19a Binary files /dev/null and b/utils/rsc/rc_light/window_minimize_pressed.png differ diff --git a/utils/rsc/rc_light/window_minimize_pressed@2x.png b/utils/rsc/rc_light/window_minimize_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6b961459b9eb7039bf4c3359225c7a6411c3522a Binary files /dev/null and b/utils/rsc/rc_light/window_minimize_pressed@2x.png differ diff --git a/utils/rsc/rc_light/window_undock.png b/utils/rsc/rc_light/window_undock.png new file mode 100644 index 0000000000000000000000000000000000000000..4da192f33059a391cb573c35ebe42308f3e3735f Binary files /dev/null and b/utils/rsc/rc_light/window_undock.png differ diff --git a/utils/rsc/rc_light/window_undock@2x.png b/utils/rsc/rc_light/window_undock@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5cfe75ccc9eac3399b449749c8010d3c219a7e31 Binary files /dev/null and b/utils/rsc/rc_light/window_undock@2x.png differ diff --git a/utils/rsc/rc_light/window_undock_disabled.png b/utils/rsc/rc_light/window_undock_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..b0db9c7a76f63ab00d40c261dccad4153eabba03 Binary files /dev/null and b/utils/rsc/rc_light/window_undock_disabled.png differ diff --git a/utils/rsc/rc_light/window_undock_disabled@2x.png b/utils/rsc/rc_light/window_undock_disabled@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9468c9f32c2c8dec3c56cbf781b0c99d44acc4db Binary files /dev/null and b/utils/rsc/rc_light/window_undock_disabled@2x.png differ diff --git a/utils/rsc/rc_light/window_undock_focus.png b/utils/rsc/rc_light/window_undock_focus.png new file mode 100644 index 0000000000000000000000000000000000000000..85fb0468ee2ab2b6099fca3741be4d3ec58d4cac Binary files /dev/null and b/utils/rsc/rc_light/window_undock_focus.png differ diff --git a/utils/rsc/rc_light/window_undock_focus@2x.png b/utils/rsc/rc_light/window_undock_focus@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e13b2f0757dcc3627fd10ea713f238be2650cea4 Binary files /dev/null and b/utils/rsc/rc_light/window_undock_focus@2x.png differ diff --git a/utils/rsc/rc_light/window_undock_pressed.png b/utils/rsc/rc_light/window_undock_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..d368cc9ad20d58001ea94a50754e2127733c3423 Binary files /dev/null and b/utils/rsc/rc_light/window_undock_pressed.png differ diff --git a/utils/rsc/rc_light/window_undock_pressed@2x.png b/utils/rsc/rc_light/window_undock_pressed@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b30f0dbb6e1e4e567d12072edc8e95f69c9bb9dc Binary files /dev/null and b/utils/rsc/rc_light/window_undock_pressed@2x.png differ diff --git a/utils/scripts/icons.bash b/utils/scripts/icons.bash new file mode 100755 index 0000000000000000000000000000000000000000..91f277df4a4c2ae5ce3da2f131b21afe01200ae3 --- /dev/null +++ b/utils/scripts/icons.bash @@ -0,0 +1,21 @@ +#!/bin/bash + +COUNTER=0 +FILE=utils/rsc/VivyPartialIcons.tmp + +echo -ne "" > $FILE + +find -L utils/rsc/icons/vivy/ -type l -exec rm -- {} + + +shopt -s globstar +for ICON in utils/rsc/icons/vivy/**/*.svg +do + COUNTER=$(( $COUNTER + 1 )) + ICON=$(echo "$ICON" | sed -e 's+utils/rsc/++g') + echo " <file>$ICON</file>" >> $FILE +done + +cat << EOF +Generated partial qrc file for $COUNTER icons from the Vivy icon theme. +Add the content of $FILE to the utils/rsc/VivyRessources.qrc file. +EOF diff --git a/vendor/lua-5.4.3/CMakeLists.txt b/vendor/lua-5.4.3/CMakeLists.txt index 8e5865107302aa06e3b5b3a554c516c413272d2a..e4cfda6f5ff442807c3c787958b44d340025d750 100644 --- a/vendor/lua-5.4.3/CMakeLists.txt +++ b/vendor/lua-5.4.3/CMakeLists.txt @@ -5,6 +5,9 @@ if(WIN32) add_definitions(-D_CRT_SECURE_NO_WARNINGS) endif() +# Pass -fPIC +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + file(GLOB Lua_SRC "${CMAKE_CURRENT_SOURCE_DIR}/src/*.c") file(GLOB Lua_INC "${CMAKE_CURRENT_SOURCE_DIR}/src/*.h") list(REMOVE_ITEM Lua_SRC "src/lua.c" "src/luac.c") @@ -12,5 +15,9 @@ list(REMOVE_ITEM Lua_SRC "src/lua.c" "src/luac.c") add_library(lua STATIC ${Lua_SRC} ${Lua_INC}) target_include_directories(lua PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/src/") +if(UNIX) + target_link_libraries(lua m) +endif() + add_executable(lua-cli src/lua.c) target_link_libraries(lua-cli PRIVATE lua)