diff --git a/.github/workflows/macos-shared.yml b/.github/workflows/macos-shared.yml new file mode 100644 index 0000000..e4b9877 --- /dev/null +++ b/.github/workflows/macos-shared.yml @@ -0,0 +1,73 @@ +name: MacOS (Shared Library) +on: + push: + paths: + - '*.txt' + - 'example/**' + - 'lib_source/**' + - 'scripts/**' + - '.github/workflows/macos-shared.yml' + pull_request: + paths: + - '*.txt' + - 'example/**' + - 'lib_source/**' + - 'scripts/**' + - '.github/workflows/macos-shared.yml' + +jobs: + build: + name: Build + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-12] + qt_ver: [6.2.4] + qt_arch: [clang_64] + env: + targetName: RibbonUI-APP + steps: + - name: Check out repository + uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Install Qt + uses: jurplel/install-qt-action@v3 + with: + version: ${{ matrix.qt_ver }} + arch: ${{ matrix.qt_arch }} + modules: 'qt5compat qtmultimedia qtshadertools qtimageformats' + + - name: Set up Ninja + uses: seanmiddleditch/gha-setup-ninja@v3 + with: + version: 1.10.2 + + - name: build macos + run: | + cmake --version + mkdir build + cd build + cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/Users/runner/work/RibbonUI/Qt/6.2.4/macos -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -GNinja .. + cmake --build . --target all --config Release --parallel + + - name: package + run: | + # 拷贝依赖 + macdeployqt /Users/runner/work/RibbonUI/RibbonUI/build/example/${targetName}.app -qmldir=. -verbose=1 -dmg + + - uses: actions/upload-artifact@v2 + with: + name: ${{ env.targetName }}_${{ matrix.os }}_${{matrix.qt_ver}}.zip + path: /Users/runner/work/RibbonUI/RibbonUI/build/example/${{ env.targetName }}.app + + - name: uploadRelease + if: startsWith(github.event.ref, 'refs/tags/') + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: /Users/runner/work/RibbonUI/RibbonUI/build/example/${{ env.targetName }}.dmg + asset_name: ${{ env.targetName }}_${{ github.ref_name }}_${{ matrix.os }}_Qt${{ matrix.qt_ver }}.dmg + tag: ${{ github.ref }} + overwrite: true \ No newline at end of file diff --git a/.github/workflows/macos-static.yml b/.github/workflows/macos-static.yml new file mode 100644 index 0000000..b425e4b --- /dev/null +++ b/.github/workflows/macos-static.yml @@ -0,0 +1,73 @@ +name: MacOS (Static Library) +on: + push: + paths: + - '*.txt' + - 'example/**' + - 'lib_source/**' + - 'scripts/**' + - '.github/workflows/macos-shared.yml' + pull_request: + paths: + - '*.txt' + - 'example/**' + - 'lib_source/**' + - 'scripts/**' + - '.github/workflows/macos-shared.yml' + +jobs: + build: + name: Build + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-12] + qt_ver: [6.2.4] + qt_arch: [clang_64] + env: + targetName: RibbonUI-APP + steps: + - name: Check out repository + uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Install Qt + uses: jurplel/install-qt-action@v3 + with: + version: ${{ matrix.qt_ver }} + arch: ${{ matrix.qt_arch }} + modules: 'qt5compat qtmultimedia qtshadertools qtimageformats' + + - name: Set up Ninja + uses: seanmiddleditch/gha-setup-ninja@v3 + with: + version: 1.10.2 + + - name: build macos + run: | + cmake --version + mkdir build + cd build + cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/Users/runner/work/RibbonUI/Qt/6.2.4/macos -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DRIBBONUI_BUILD_STATIC_LIB=ON -GNinja .. + cmake --build . --target all --config Release --parallel + + - name: package + run: | + # 拷贝依赖 + macdeployqt /Users/runner/work/RibbonUI/RibbonUI/build/example/${targetName}.app -qmldir=. -verbose=1 -dmg + + - uses: actions/upload-artifact@v2 + with: + name: ${{ env.targetName }}_${{ matrix.os }}_${{matrix.qt_ver}}.zip + path: /Users/runner/work/RibbonUI/RibbonUI/build/example/${{ env.targetName }}.app + + - name: uploadRelease + if: startsWith(github.event.ref, 'refs/tags/') + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: /Users/runner/work/RibbonUI/RibbonUI/build/example/${{ env.targetName }}.dmg + asset_name: ${{ env.targetName }}_${{ github.ref_name }}_${{ matrix.os }}_Qt${{ matrix.qt_ver }}.dmg + tag: ${{ github.ref }} + overwrite: true \ No newline at end of file diff --git a/.github/workflows/ubuntu-shared.yml b/.github/workflows/ubuntu-shared.yml new file mode 100644 index 0000000..a83ac31 --- /dev/null +++ b/.github/workflows/ubuntu-shared.yml @@ -0,0 +1,89 @@ +name: Ubuntu (Shared Library) +on: + workflow_dispatch: + push: + paths: + - '*.txt' + - 'lib_source/**' + - 'example/**' + - 'scripts/**' + - '.github/workflows/ubuntu-shared.yml' + pull_request: + paths: + - '*.txt' + - 'lib_source/**' + - 'example/**' + - 'scripts/**' + - '.github/workflows/ubuntu-shared.yml' + +jobs: + build: + name: Build + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-20.04] + qt_ver: [6.2.4] + qt_arch: [gcc_64] + env: + targetName: RibbonUI-APP + steps: + - name: Check out repository + uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Install Qt + uses: jurplel/install-qt-action@v3 + with: + version: ${{ matrix.qt_ver }} + arch: ${{ matrix.qt_arch }} + modules: 'qt5compat qtmultimedia qtshadertools qtimageformats' + + - name: Set up Ninja + uses: seanmiddleditch/gha-setup-ninja@v3 + with: + version: 1.10.2 + + - name: ubuntu install GL library + run: sudo apt-get install -y libxcb-cursor0 libgl1-mesa-dev libxcb1-dev libgtk-3-dev libxkbcommon-x11-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxcb-xinerama0-dev libxcb-sync-dev libxcb-render-util0-dev libxcb-shm0-dev + + - name: build ubuntu + run: | + ninja --version + cmake --version + mkdir build + cd build + cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/home/runner/work/RibbonUI/Qt/6.2.4/gcc_64 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -GNinja .. + cmake --build . --target all --config Release --parallel + + - name: install QT linux deploy + uses: miurahr/install-linuxdeploy-action@v1 + with: + plugins: qt appimage + + - name: Check if svg file exists + run: if [ ! -f "${targetName}.svg" ]; then echo "File not found, creating..."; touch ${targetName}.svg; fi + + - name: package + run: | + # make sure Qt plugin finds QML sources so it can deploy the imported files + export QML_SOURCES_PATHS=./ + # 拷贝依赖 + linuxdeploy-x86_64.AppImage --plugin=qt --output=appimage --create-desktop-file --icon-file=${targetName}.svg --executable=/home/runner/work/RibbonUI/RibbonUI/build/example/${targetName} --appdir /home/runner/work/RibbonUI/RibbonUI/build/example/ + mv ${{ env.targetName }}-*.AppImage ${{ env.targetName }}.AppImage + + - uses: actions/upload-artifact@v2 + with: + name: ${{ env.targetName }}_${{ matrix.os }}_${{matrix.qt_ver}} + path: ${{ env.targetName }}.AppImage + + - name: uploadRelease + if: startsWith(github.event.ref, 'refs/tags/') + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{ env.targetName }}.AppImage + asset_name: ${{ env.targetName }}_${{ github.ref_name }}_${{ matrix.os }}_Qt${{ matrix.qt_ver }}.AppImage + tag: ${{ github.ref }} + overwrite: true \ No newline at end of file diff --git a/.github/workflows/ubuntu-static.yml b/.github/workflows/ubuntu-static.yml new file mode 100644 index 0000000..4ee3750 --- /dev/null +++ b/.github/workflows/ubuntu-static.yml @@ -0,0 +1,89 @@ +name: Ubuntu (Static Library) +on: + workflow_dispatch: + push: + paths: + - '*.txt' + - 'lib_source/**' + - 'example/**' + - 'scripts/**' + - '.github/workflows/ubuntu-shared.yml' + pull_request: + paths: + - '*.txt' + - 'lib_source/**' + - 'example/**' + - 'scripts/**' + - '.github/workflows/ubuntu-shared.yml' + +jobs: + build: + name: Build + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-20.04] + qt_ver: [6.2.4] + qt_arch: [gcc_64] + env: + targetName: RibbonUI-APP + steps: + - name: Check out repository + uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Install Qt + uses: jurplel/install-qt-action@v3 + with: + version: ${{ matrix.qt_ver }} + arch: ${{ matrix.qt_arch }} + modules: 'qt5compat qtmultimedia qtshadertools qtimageformats' + + - name: Set up Ninja + uses: seanmiddleditch/gha-setup-ninja@v3 + with: + version: 1.10.2 + + - name: ubuntu install GL library + run: sudo apt-get install -y libxcb-cursor0 libgl1-mesa-dev libxcb1-dev libgtk-3-dev libxkbcommon-x11-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxcb-xinerama0-dev libxcb-sync-dev libxcb-render-util0-dev libxcb-shm0-dev + + - name: build ubuntu + run: | + ninja --version + cmake --version + mkdir build + cd build + cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/home/runner/work/RibbonUI/Qt/6.2.4/gcc_64 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -DRIBBONUI_BUILD_STATIC_LIB=ON -GNinja .. + cmake --build . --target all --config Release --parallel + + - name: install QT linux deploy + uses: miurahr/install-linuxdeploy-action@v1 + with: + plugins: qt appimage + + - name: Check if svg file exists + run: if [ ! -f "${targetName}.svg" ]; then echo "File not found, creating..."; touch ${targetName}.svg; fi + + - name: package + run: | + # make sure Qt plugin finds QML sources so it can deploy the imported files + export QML_SOURCES_PATHS=./ + # 拷贝依赖 + linuxdeploy-x86_64.AppImage --plugin=qt --output=appimage --create-desktop-file --icon-file=${targetName}.svg --executable=/home/runner/work/RibbonUI/RibbonUI/build/example/${targetName} --appdir /home/runner/work/RibbonUI/RibbonUI/build/example/ + mv ${{ env.targetName }}-*.AppImage ${{ env.targetName }}.AppImage + + - uses: actions/upload-artifact@v2 + with: + name: ${{ env.targetName }}_${{ matrix.os }}_${{matrix.qt_ver}} + path: ${{ env.targetName }}.AppImage + + - name: uploadRelease + if: startsWith(github.event.ref, 'refs/tags/') + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{ env.targetName }}.AppImage + asset_name: ${{ env.targetName }}_${{ github.ref_name }}_${{ matrix.os }}_Qt${{ matrix.qt_ver }}.AppImage + tag: ${{ github.ref }} + overwrite: true \ No newline at end of file diff --git a/.github/workflows/windows-mingw-shared.yml b/.github/workflows/windows-mingw-shared.yml new file mode 100644 index 0000000..09eeba8 --- /dev/null +++ b/.github/workflows/windows-mingw-shared.yml @@ -0,0 +1,90 @@ +name: Windows MinGW (Shared Library) +on: + push: + paths: + - '*.txt' + - 'lib_source/**' + - 'example/**' + - 'scripts/**' + - '.github/workflows/windows-mingw-shared.yml' + pull_request: + paths: + - '*.txt' + - 'example/**' + - 'lib_source/**' + - 'scripts/**' + - '.github/workflows/windows-mingw-shared.yml' + +jobs: + build: + name: Build + runs-on: windows-2022 + strategy: + matrix: + include: + - qt_arch: win64_mingw + qt_ver: 6.2.4 + qt_tools: "tools_mingw,9.0.0-1-202203221220,qt.tools.win64_mingw900" + qt_tools_mingw_install: mingw900_64 + env: + targetName: RibbonUI-APP.exe + fileName: RibbonUI-APP + steps: + - name: Check out repository + uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Install Qt + uses: jurplel/install-qt-action@v3 + with: + version: ${{ matrix.qt_ver }} + arch: ${{ matrix.qt_arch }} + modules: 'qt5compat qtmultimedia qtshadertools qtimageformats' + + - name: Qt6 environment configuration + if: ${{ startsWith( matrix.qt_ver, 6 ) }} + shell: pwsh + run: | + Write-Output "${{ env.Qt6_DIR }}/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + Write-Output "${{ env.Qt6_DIR }}/../../Tools/${{ matrix.qt_tools_mingw_install }}/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + + - name: where is cmake & where is mingw32-make + shell: pwsh + run: | + Get-Command -Name 'cmake' | Format-List + Get-Command -Name 'mingw32-make' | Format-List + + - name: mingw-build + id: build + shell: cmd + run: | + mkdir build + cd build + cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\RibbonUI\Qt\6.2.4\mingw_64 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -GNinja .. + cmake --build . --target all --config Release --parallel + + - name: package + id: package + env: + archiveName: ${{ env.fileName }}-${{ matrix.qt_arch }}-${{ matrix.qt_ver }} + shell: pwsh + run: | + & scripts\windows-mingw-publish.ps1 ${env:archiveName} ${env:targetName} + $name = ${env:archiveName} + echo "::set-output name=packageName::$name" + + - uses: actions/upload-artifact@v2 + with: + name: ${{ steps.package.outputs.packageName }} + path: ${{ steps.package.outputs.packageName }} + + - name: uploadRelease + if: startsWith(github.event.ref, 'refs/tags/') + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{ steps.package.outputs.packageName }}.zip + asset_name: ${{ env.fileName }}_${{ github.ref_name }}_${{ matrix.qt_arch }}_Qt${{ matrix.qt_ver }}.zip + tag: ${{ github.ref }} + overwrite: true \ No newline at end of file diff --git a/.github/workflows/windows-mingw-static.yml b/.github/workflows/windows-mingw-static.yml new file mode 100644 index 0000000..921df1e --- /dev/null +++ b/.github/workflows/windows-mingw-static.yml @@ -0,0 +1,90 @@ +name: Windows MinGW (Static Library) +on: + push: + paths: + - '*.txt' + - 'lib_source/**' + - 'example/**' + - 'scripts/**' + - '.github/workflows/windows-mingw-shared.yml' + pull_request: + paths: + - '*.txt' + - 'example/**' + - 'lib_source/**' + - 'scripts/**' + - '.github/workflows/windows-mingw-shared.yml' + +jobs: + build: + name: Build + runs-on: windows-2022 + strategy: + matrix: + include: + - qt_arch: win64_mingw + qt_ver: 6.2.4 + qt_tools: "tools_mingw,9.0.0-1-202203221220,qt.tools.win64_mingw900" + qt_tools_mingw_install: mingw900_64 + env: + targetName: RibbonUI-APP.exe + fileName: RibbonUI-APP + steps: + - name: Check out repository + uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Install Qt + uses: jurplel/install-qt-action@v3 + with: + version: ${{ matrix.qt_ver }} + arch: ${{ matrix.qt_arch }} + modules: 'qt5compat qtmultimedia qtshadertools qtimageformats' + + - name: Qt6 environment configuration + if: ${{ startsWith( matrix.qt_ver, 6 ) }} + shell: pwsh + run: | + Write-Output "${{ env.Qt6_DIR }}/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + Write-Output "${{ env.Qt6_DIR }}/../../Tools/${{ matrix.qt_tools_mingw_install }}/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + + - name: where is cmake & where is mingw32-make + shell: pwsh + run: | + Get-Command -Name 'cmake' | Format-List + Get-Command -Name 'mingw32-make' | Format-List + + - name: mingw-build + id: build + shell: cmd + run: | + mkdir build + cd build + cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\RibbonUI\Qt\6.2.4\mingw_64 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -DRIBBONUI_BUILD_STATIC_LIB=ON -GNinja .. + cmake --build . --target all --config Release --parallel + + - name: package + id: package + env: + archiveName: ${{ env.fileName }}-${{ matrix.qt_arch }}-${{ matrix.qt_ver }} + shell: pwsh + run: | + & scripts\windows-mingw-publish.ps1 ${env:archiveName} ${env:targetName} + $name = ${env:archiveName} + echo "::set-output name=packageName::$name" + + - uses: actions/upload-artifact@v2 + with: + name: ${{ steps.package.outputs.packageName }} + path: ${{ steps.package.outputs.packageName }} + + - name: uploadRelease + if: startsWith(github.event.ref, 'refs/tags/') + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{ steps.package.outputs.packageName }}.zip + asset_name: ${{ env.fileName }}_${{ github.ref_name }}_${{ matrix.qt_arch }}_Qt${{ matrix.qt_ver }}.zip + tag: ${{ github.ref }} + overwrite: true \ No newline at end of file diff --git a/.github/workflows/windows-msvc-shared.yml b/.github/workflows/windows-msvc-shared.yml new file mode 100644 index 0000000..9f5e699 --- /dev/null +++ b/.github/workflows/windows-msvc-shared.yml @@ -0,0 +1,85 @@ +name: Windows MSVC (Shared Library) +on: + push: + paths: + - '*.txt' + - 'lib_source/**' + - 'example/**' + - 'scripts/**' + - '.github/workflows/windows-msvc-shared.yml' + pull_request: + paths: + - '*.txt' + - 'example/**' + - 'lib_source/**' + - 'scripts/**' + - '.github/workflows/windows-msvc-shared.yml' + +jobs: + build: + name: Build + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [windows-2019] + include: + - qt_ver: 6.2.4 + qt_arch: win64_msvc2019_64 + msvc_arch: x64 + qt_arch_install: msvc2019_64 + env: + targetName: RibbonUI-APP.exe + fileName: RibbonUI-APP + steps: + - name: Check out repository + uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Install Qt + uses: jurplel/install-qt-action@v3 + with: + version: ${{ matrix.qt_ver }} + arch: ${{ matrix.qt_arch }} + modules: 'qt5compat qtmultimedia qtshadertools qtimageformats' + + - name: msvc-build + id: build + shell: cmd + run: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.msvc_arch }} + mkdir build + cd build + cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\RibbonUI\Qt\6.2.4\msvc2019_64 -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_BUILD_TYPE=Release -GNinja .. + cmake --build . --target all --config Release --parallel + echo winSdkDir=%WindowsSdkDir% >> %GITHUB_ENV% + echo winSdkVer=%WindowsSdkVersion% >> %GITHUB_ENV% + echo vcToolsInstallDir=%VCToolsInstallDir% >> %GITHUB_ENV% + echo vcToolsRedistDir=%VCToolsRedistDir% >> %GITHUB_ENV% + + - name: package + id: package + env: + archiveName: ${{ env.fileName }}-${{ matrix.qt_arch }}-${{ matrix.qt_ver }} + msvcArch: ${{ matrix.msvc_arch }} + shell: pwsh + run: | + & scripts\windows-publish.ps1 ${env:archiveName} ${env:targetName} + # 记录packageName给后续step + $name = ${env:archiveName} + echo "::set-output name=packageName::$name" + + - uses: actions/upload-artifact@v2 + with: + name: ${{ steps.package.outputs.packageName }} + path: ${{ steps.package.outputs.packageName }} + + - name: uploadRelease + if: startsWith(github.event.ref, 'refs/tags/') + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{ steps.package.outputs.packageName }}.zip + asset_name: ${{ env.fileName }}_${{ github.ref_name }}_${{ matrix.qt_arch }}_Qt${{ matrix.qt_ver }}.zip + tag: ${{ github.ref }} + overwrite: true \ No newline at end of file diff --git a/.github/workflows/windows-msvc-static.yml b/.github/workflows/windows-msvc-static.yml new file mode 100644 index 0000000..ae52155 --- /dev/null +++ b/.github/workflows/windows-msvc-static.yml @@ -0,0 +1,85 @@ +name: Windows MSVC (Static Library) +on: + push: + paths: + - '*.txt' + - 'lib_source/**' + - 'example/**' + - 'scripts/**' + - '.github/workflows/windows-msvc-shared.yml' + pull_request: + paths: + - '*.txt' + - 'example/**' + - 'lib_source/**' + - 'scripts/**' + - '.github/workflows/windows-msvc-shared.yml' + +jobs: + build: + name: Build + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [windows-2019] + include: + - qt_ver: 6.2.4 + qt_arch: win64_msvc2019_64 + msvc_arch: x64 + qt_arch_install: msvc2019_64 + env: + targetName: RibbonUI-APP.exe + fileName: RibbonUI-APP + steps: + - name: Check out repository + uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Install Qt + uses: jurplel/install-qt-action@v3 + with: + version: ${{ matrix.qt_ver }} + arch: ${{ matrix.qt_arch }} + modules: 'qt5compat qtmultimedia qtshadertools qtimageformats' + + - name: msvc-build + id: build + shell: cmd + run: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.msvc_arch }} + mkdir build + cd build + cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\RibbonUI\Qt\6.2.4\msvc2019_64 -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_BUILD_TYPE=Release -DRIBBONUI_BUILD_STATIC_LIB=ON -GNinja .. + cmake --build . --target all --config Release --parallel + echo winSdkDir=%WindowsSdkDir% >> %GITHUB_ENV% + echo winSdkVer=%WindowsSdkVersion% >> %GITHUB_ENV% + echo vcToolsInstallDir=%VCToolsInstallDir% >> %GITHUB_ENV% + echo vcToolsRedistDir=%VCToolsRedistDir% >> %GITHUB_ENV% + + - name: package + id: package + env: + archiveName: ${{ env.fileName }}-${{ matrix.qt_arch }}-${{ matrix.qt_ver }} + msvcArch: ${{ matrix.msvc_arch }} + shell: pwsh + run: | + & scripts\windows-publish.ps1 ${env:archiveName} ${env:targetName} + # 记录packageName给后续step + $name = ${env:archiveName} + echo "::set-output name=packageName::$name" + + - uses: actions/upload-artifact@v2 + with: + name: ${{ steps.package.outputs.packageName }} + path: ${{ steps.package.outputs.packageName }} + + - name: uploadRelease + if: startsWith(github.event.ref, 'refs/tags/') + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{ steps.package.outputs.packageName }}.zip + asset_name: ${{ env.fileName }}_${{ github.ref_name }}_${{ matrix.qt_arch }}_Qt${{ matrix.qt_ver }}.zip + tag: ${{ github.ref }} + overwrite: true \ No newline at end of file diff --git a/.gitignore b/.gitignore index 7f4826b..1683b06 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,7 @@ *.lai *.so *.so.* -*.dll +#*.dll *.dylib # Qt-es @@ -52,3 +52,32 @@ compile_commands.json *creator.user* *_qmlcache.qrc + +# ---> macOS +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..d85aefa --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "3rdparty/framelesshelper"] + path = 3rdparty/framelesshelper + url = git@github.com:wangwenx190/framelesshelper.git diff --git a/3rdparty/framelesshelper b/3rdparty/framelesshelper new file mode 160000 index 0000000..d9ce1c4 --- /dev/null +++ b/3rdparty/framelesshelper @@ -0,0 +1 @@ +Subproject commit d9ce1c4302ceabfd8748a7658ae9a2d918575303 diff --git a/3rdparty/mingw/libcrypto-1_1-x64.dll b/3rdparty/mingw/libcrypto-1_1-x64.dll new file mode 100644 index 0000000..f996a04 Binary files /dev/null and b/3rdparty/mingw/libcrypto-1_1-x64.dll differ diff --git a/3rdparty/mingw/libgcc_s_seh-1.dll b/3rdparty/mingw/libgcc_s_seh-1.dll new file mode 100644 index 0000000..f1735a2 Binary files /dev/null and b/3rdparty/mingw/libgcc_s_seh-1.dll differ diff --git a/3rdparty/mingw/libssl-1_1-x64.dll b/3rdparty/mingw/libssl-1_1-x64.dll new file mode 100644 index 0000000..f6cf40b Binary files /dev/null and b/3rdparty/mingw/libssl-1_1-x64.dll differ diff --git a/3rdparty/mingw/libstdc++-6.dll b/3rdparty/mingw/libstdc++-6.dll new file mode 100644 index 0000000..fc6c1d0 Binary files /dev/null and b/3rdparty/mingw/libstdc++-6.dll differ diff --git a/3rdparty/mingw/libwinpthread-1.dll b/3rdparty/mingw/libwinpthread-1.dll new file mode 100644 index 0000000..245a6b7 Binary files /dev/null and b/3rdparty/mingw/libwinpthread-1.dll differ diff --git a/3rdparty/msvc/libcrypto-1_1-x64.dll b/3rdparty/msvc/libcrypto-1_1-x64.dll new file mode 100644 index 0000000..f996a04 Binary files /dev/null and b/3rdparty/msvc/libcrypto-1_1-x64.dll differ diff --git a/3rdparty/msvc/libssl-1_1-x64.dll b/3rdparty/msvc/libssl-1_1-x64.dll new file mode 100644 index 0000000..f6cf40b Binary files /dev/null and b/3rdparty/msvc/libssl-1_1-x64.dll differ diff --git a/3rdparty/msvc/vcruntime140_1.dll b/3rdparty/msvc/vcruntime140_1.dll new file mode 100644 index 0000000..d31504c Binary files /dev/null and b/3rdparty/msvc/vcruntime140_1.dll differ diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..80b546c --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,27 @@ +cmake_minimum_required(VERSION 3.16) + +project(RibbonUI_Project VERSION 1.0 LANGUAGES CXX) + +option(RIBBONUI_BUILD_EXAMPLES "Build RibbonUI APP." ON) +option(RIBBONUI_BUILD_FRAMELESSHEPLER "Build FramelessHelper." ON) +option(RIBBONUI_BUILD_STATIC_LIB "Build RibbonUI static library." OFF) + +if (RIBBONUI_BUILD_EXAMPLES) + add_subdirectory(example) +endif() + +if (RIBBONUI_BUILD_FRAMELESSHEPLER) + set(FRAMELESSHELPER_BUILD_STATIC ON) + set(FRAMELESSHELPER_NO_SUMMARY OFF) + set(FRAMELESSHELPER_NO_DEBUG_OUTPUT ON) + set(FRAMELESSHELPER_BUILD_WIDGETS OFF) + add_subdirectory(3rdparty/framelesshelper) +endif() + +add_subdirectory(lib_source) + +message("---------------------------- RibbonUI ----------------------------") +message("Build RibbonUI APP: ${RIBBONUI_BUILD_EXAMPLES}") +message("Build FramelessHelper: ${RIBBONUI_BUILD_FRAMELESSHEPLER}") +message("Build RibbonUI static library: ${RIBBONUI_BUILD_STATIC_LIB}") +message("------------------------------------------------------------------") diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt new file mode 100644 index 0000000..4f02a6c --- /dev/null +++ b/example/CMakeLists.txt @@ -0,0 +1,93 @@ +cmake_minimum_required(VERSION 3.21) + +project(RibbonUIAPP VERSION 1.0.0.0 LANGUAGES CXX) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +if(APPLE) + set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "" FORCE) +endif() + +set(PROJECT_COMPANY "Mentalflow's Lab") +set(PROJECT_COPYRIGHT "Copyright (c) 2023 Mentalflow's Lab. All rights reserved.") +set(PROJECT_DOMAIN "dev.ourdocs.cn.ribbonuiapp") +set(PROJECT_BUNDLE_NAME RibbonUI-APP) + +add_definitions(-DRIBBONUIAPP_VERSION=1,0,0,0) + +find_package(Qt6 COMPONENTS Quick REQUIRED) + +set(sources_files example.cpp) + +if (WIN32) + set(app_icon_resource_windows "${CMAKE_CURRENT_SOURCE_DIR}/resources/icon.rc") + qt_add_executable(${PROJECT_NAME} + ${sources_files} + "${CMAKE_CURRENT_SOURCE_DIR}/resources/icon.rc" + ) + file(TO_CMAKE_PATH "/" PATH_SEPARATOR) + if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + set(DLLPATH ${CMAKE_SOURCE_DIR}/3rdparty/msvc/*.dll) + else() + set(DLLPATH ${CMAKE_SOURCE_DIR}/3rdparty/mingw/*.dll) + endif() + string(REPLACE "/" ${PATH_SEPARATOR} DLLPATH "${DLLPATH}") + file(GLOB DLL_FILES ${DLLPATH}) + add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${DLL_FILES} + "${CMAKE_BINARY_DIR}${PATH_SEPARATOR}example" + ) +elseif(APPLE) + set(MACOSX_BUNDLE_ICON_FILE AppIcon) + set(App_ICON "${CMAKE_CURRENT_SOURCE_DIR}/resources/imgs/AppIcon.icns") + set_source_files_properties(${App_ICON} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources") + qt_add_executable(${PROJECT_NAME} + ${sources_files} + ${App_ICON} + ) +else () + qt_add_executable(${PROJECT_NAME} + ${sources_files} + ) +endif () + +qt_add_qml_module(${PROJECT_NAME} + URI ${PROJECT_NAME} + VERSION 1.0 + QML_FILES example.qml components/RibbonWindow.qml + RESOURCES resources/imgs/heart.png resources/imgs/search.png resources/icon.rc +) + +set_target_properties(${PROJECT_NAME} PROPERTIES + MACOSX_BUNDLE_GUI_IDENTIFIER ${PROJECT_DOMAIN} + MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} + MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} + MACOSX_BUNDLE_BUNDLE_NAME ${PROJECT_BUNDLE_NAME} + MACOSX_BUNDLE_COPYRIGHT ${PROJECT_COPYRIGHT} + MACOSX_BUNDLE TRUE + WIN32_EXECUTABLE TRUE + OUTPUT_NAME ${PROJECT_BUNDLE_NAME} +) + +if(RIBBONUI_BUILD_STATIC_LIB) + add_definitions(-DRIBBONUI_BUILD_STATIC_LIB) + target_link_libraries(${PROJECT_NAME} PRIVATE + Qt::Quick + RibbonUIplugin + FramelessHelper::Core + FramelessHelper::Quick + ) + +else() + target_link_libraries(${PROJECT_NAME} PRIVATE + Qt::Quick + RibbonUI + FramelessHelper::Core + FramelessHelper::Quick + ) + +endif() +target_compile_definitions(${PROJECT_NAME} PRIVATE $<$,$>:QT_QML_DEBUG>) +target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/example/components/RibbonWindow.qml b/example/components/RibbonWindow.qml new file mode 100644 index 0000000..b6843b4 --- /dev/null +++ b/example/components/RibbonWindow.qml @@ -0,0 +1,76 @@ +import QtQuick +import RibbonUI +import org.wangwenx190.FramelessHelper + +Window { + id:window + default property alias content: container.data + property alias title_bar: titleBar + property alias popup: pop + property bool comfirmed_quit: false + visible: false + color: { + if (FramelessHelper.blurBehindWindowEnabled) { + return "transparent"; + } + if (FramelessUtils.systemTheme === FramelessHelperConstants.Dark) { + return FramelessUtils.defaultSystemDarkColor; + } + return FramelessUtils.defaultSystemLightColor; + } + FramelessHelper.onReady: { + FramelessHelper.titleBarItem = titleBar; + FramelessHelper.moveWindowToDesktopCenter(); + window.visible = true; + } + RibbonTitleBar { + id: titleBar + } + Item{ + id:container + anchors{ + top: titleBar.bottom + left: parent.left + right: parent.right + bottom: parent.bottom + } + clip: true + } + Connections{ + target: RibbonTheme + function onTheme_modeChanged() { + if (RibbonTheme.dark_mode) + FramelessUtils.systemTheme = FramelessHelperConstants.Dark + else + FramelessUtils.systemTheme = FramelessHelperConstants.Light + } + } + Rectangle{ + z:99 + anchors.fill: parent + color: !RibbonTheme.dark_mode ? Qt.rgba(255,255,255,0.3) : Qt.rgba(0,0,0,0.3) + visible: !Window.active + } + RibbonPopup{ + id: pop + } + RibbonPopupDialog{ + id: dialog + positiveText: qsTr("Quit") + neutralText: qsTr("Minimize") + negativeText: qsTr("Cancel") + message: "Do you want to quit the APP?" + title: "Please note" + buttonFlags: RibbonPopupDialogType.NegativeButton | RibbonPopupDialogType.PositiveButton | RibbonPopupDialogType.NeutralButton + onNeutralClicked: window.visibility = Window.Minimized + onPositiveClicked: { + comfirmed_quit = true + Qt.quit() + } + } + onClosing:function(event){ + event.accepted = comfirmed_quit + if (!comfirmed_quit) + dialog.open() + } +} diff --git a/example/example.cpp b/example/example.cpp new file mode 100644 index 0000000..c341bac --- /dev/null +++ b/example/example.cpp @@ -0,0 +1,42 @@ +#include +#include +#include +#include +#include + +FRAMELESSHELPER_USE_NAMESPACE +#ifdef RIBBONUI_BUILD_STATIC_LIB +Q_IMPORT_QML_PLUGIN(RibbonUIPlugin) +#endif +int main(int argc, char *argv[]) +{ + qputenv("QT_QUICK_CONTROLS_STYLE","Basic"); + FramelessHelper::Quick::initialize(); + QGuiApplication app(argc, argv); + +#ifdef Q_OS_WIN + FramelessConfig::instance()->set(Global::Option::ForceHideWindowFrameBorder); +#endif + FramelessConfig::instance()->set(Global::Option::DisableLazyInitializationForMicaMaterial); + FramelessConfig::instance()->set(Global::Option::CenterWindowBeforeShow); + FramelessConfig::instance()->set(Global::Option::ForceNonNativeBackgroundBlur); + FramelessConfig::instance()->set(Global::Option::EnableBlurBehindWindow); +#ifdef Q_OS_MACOS + FramelessConfig::instance()->set(Global::Option::ForceNonNativeBackgroundBlur,false); +#endif + + QQmlApplicationEngine engine; + FramelessHelper::Quick::registerTypes(&engine); +#ifdef RIBBONUI_BUILD_STATIC_LIB + engine.addImportPath("qrc:/"); +#endif + const QUrl url(u"qrc:/RibbonUIAPP/example.qml"_qs); + QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, + &app, [url](QObject *obj, const QUrl &objUrl) { + if (!obj && url == objUrl) + QCoreApplication::exit(-1); + }, Qt::QueuedConnection); + engine.load(url); + + return app.exec(); +} diff --git a/example/example.qml b/example/example.qml new file mode 100644 index 0000000..51bb67c --- /dev/null +++ b/example/example.qml @@ -0,0 +1,726 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import QtQuick.Controls.Material +import QtQuick.Window +import RibbonUI +import org.wangwenx190.FramelessHelper +import "components" + +RibbonWindow { + id:root + width: 1200 + height: 800 + title: qsTr("RibbonUI APP") + property bool modern_style: RibbonTheme.modern_style + + RibbonTabBar { + id: tab_bar + modern_style: root.modern_style + right_tool_bar: RowLayout{ + spacing: 10 + RibbonButton{ + text:"Test Button 1" + icon_source: RibbonIcons.Alert + checkable: true + } + RibbonButton{ + text:"Test Button 2" + } + } + + RibbonTabPage{ + id: basic_page + title: qsTr("Basic") + RibbonTabGroup{ + width: slider_layout.width + 20 + text: qsTr("Slider") + RowLayout{ + id: slider_layout + anchors.centerIn: parent + height: parent.height + spacing: 0 + RibbonSlider{ + Layout.alignment: Qt.AlignVCenter + slide_width: 40 + horizontal: false + value: 20 + } + RibbonSlider{ + Layout.alignment: Qt.AlignVCenter + slide_width: 40 + horizontal: false + show_button: false + value: 40 + } + ColumnLayout{ + spacing: 0 + Layout.alignment: Qt.AlignVCenter + RibbonSlider{ + Layout.alignment: Qt.AlignHCenter + slide_width: 40 + value: 60 + } + RibbonSlider{ + Layout.alignment: Qt.AlignHCenter + slide_width: 40 + show_button: false + value: 80 + } + } + } + } + RibbonTabGroup{ + width: switch_layout.width + 30 + text: qsTr("Switch Button") + RowLayout{ + id: switch_layout + anchors.centerIn: parent + height: parent.height + spacing: 0 + ColumnLayout{ + spacing: 5 + RibbonSwitchButton{ + text: "Button" + grabber_checked_color: "red" + checked: true + } + RibbonSwitchButton{ + text: "Button" + text_on_left: true + grabber_checked_color: "orange" + checked: true + } + RibbonSwitchButton{ + grabber_checked_color: "blue" + } + } + ColumnLayout{ + spacing: 5 + RibbonSwitchButton{ + text: "Button" + show_grabber_text: false + grabber_checked_color: "green" + } + RibbonSwitchButton{ + text: "Button" + show_grabber_text: false + text_on_left: true + grabber_checked_color: "indigo" + checked: true + } + RibbonSwitchButton{ + show_grabber_text: false + grabber_checked_color: "yellow" + checked: true + } + } + } + } + RibbonTabGroup{ + width: checkbox_layout.width + 30 + text: qsTr("CheckBox") + RowLayout{ + id: checkbox_layout + anchors.centerIn: parent + height: parent.height + spacing: 0 + ColumnLayout{ + spacing: 10 + RibbonCheckBox{ + text: "CheckBox" + icon_filled_bg_color: "blue" + checked: true + } + RibbonCheckBox{ + text: "CheckBox" + text_on_left: true + icon_filled_bg_color: "red" + } + RowLayout{ + spacing: 30 + RibbonCheckBox{ + icon_filled_bg_color:"orange" + tip_text: "CheckBox" + show_tooltip: true + checked: true + } + RibbonCheckBox{ + icon_filled_bg_color:"purple" + } + } + } + } + } + RibbonTabGroup{ + width: button_layout.width + 30 + text: qsTr("Button") + RowLayout{ + id: button_layout + anchors.centerIn: parent + height: parent.height + spacing: 1 + ColumnLayout{ + spacing: 10 + RibbonButton{ + text:"Button" + icon_source: RibbonIcons.Accessibility + checkable: true + } + RibbonButton{ + text:"Button" + } + RibbonButton{ + text:"Button" + show_tooltip: false + } + } + ColumnLayout{ + spacing: 10 + RibbonButton{ + text:"Button" + show_bg:false + icon_source: RibbonIcons.Beaker + checkable: true + } + RibbonButton{ + text:"Button" + show_bg:false + } + RibbonButton{ + text:"Button" + show_bg:false + show_tooltip: false + } + } + ColumnLayout{ + spacing: 10 + RibbonButton{ + show_bg:false + icon_source: RibbonIcons.Badge + icon_source_filled: RibbonIcons_Filled.Badge + checkable: true + tip_text: "Button" + } + RibbonButton{ + show_bg:false + icon_source: RibbonIcons.Clock + icon_source_filled: RibbonIcons_Filled.Clock + tip_text: "Button" + } + RibbonButton{ + show_bg:false + icon_source: RibbonIcons.Board + icon_source_filled: RibbonIcons_Filled.Board + checkable: true + tip_text: "Button" + show_tooltip: false + } + } + } + } + RibbonTabGroup{ + width: pushbutton_layout.width + 30 + text: qsTr("Push Button") + RowLayout{ + id: pushbutton_layout + anchors.centerIn: parent + height: parent.height + spacing: 10 + RibbonPushButton{ + text: qsTr("No Menu") + icon_source: RibbonIcons.AttachText + } + RibbonPushButton{ + text: qsTr("Menu") + icon_source: RibbonIcons.MeetNow + Action{ + text: "Test Item 1" + } + RibbonMenuSeparator{} + Action{ + text: "Test Item 2" + enabled: false + } + } + RibbonPushButton{ + text: qsTr("No Menu") + icon_source: "qrc:/RibbonUIAPP/resources/imgs/heart.png" + icon_size: height-5 + } + RibbonPushButton{ + text: qsTr("Menu") + icon_source: "qrc:/RibbonUIAPP/resources/imgs/search.png" + Action{ + text: "Test Item 3" + } + RibbonMenuSeparator{} + Action{ + text: "Test Item 4" + enabled: false + } + } + } + } + } + RibbonTabPage{ + title: qsTr("Input") + RibbonTabGroup{ + width: lineedit_layout.width + 30 + text: qsTr("Line Edit") + RowLayout{ + id: lineedit_layout + anchors.centerIn: parent + height: parent.height + spacing: 10 + ColumnLayout{ + spacing: 10 + Layout.fillHeight: true + RibbonLineEdit{ + } + RibbonLineEdit{ + show_clear_btn:false + } + } + ColumnLayout{ + spacing: 10 + Layout.fillHeight: true + RibbonLineEdit{ + icon_source:RibbonIcons.Search + } + RibbonLineEdit{ + icon_source:RibbonIcons.Keyboard + show_clear_btn:false + } + } + } + } + RibbonTabGroup{ + width: lineedit_layout.width + 30 + text: qsTr("Text Edit") + RowLayout{ + id: textedit_layout + anchors.centerIn: parent + height: parent.height + spacing: 10 + ColumnLayout{ + spacing: 30 + Layout.fillHeight: true + RibbonTextEdit{ + max_height: 50 + } + RibbonTextEdit{ + max_height: 30 + show_clear_btn:false + } + } + ColumnLayout{ + spacing: 30 + Layout.fillHeight: true + RibbonTextEdit{ + max_height: 50 + icon_source:RibbonIcons.Search + } + RibbonTextEdit{ + max_height: 30 + icon_source:RibbonIcons.Keyboard + show_clear_btn:false + } + } + } + } + RibbonTabGroup{ + width: combobox_layout.width + 30 + text: qsTr("Combo Box") + RowLayout{ + id: combobox_layout + anchors.centerIn: parent + height: parent.height + spacing: 10 + ColumnLayout{ + spacing: 10 + Layout.fillHeight: true + RibbonComboBox{ + model: ListModel { + ListElement { text: "Test Item 1" } + ListElement { text: "Test Item 2" } + ListElement { text: "Test Item 3" } + } + } + RibbonComboBox{ + editable: true + model: ListModel { + id: model + ListElement { text: "Test Item 1" } + ListElement { text: "Test Item 2" } + ListElement { text: "Test Item 3" } + } + onAccepted: { + if (find(editText) === -1 && editText) + model.append({text: editText}) + } + } + } + ColumnLayout{ + spacing: 10 + Layout.fillHeight: true + RibbonComboBox{ + model: ListModel { + ListElement { text: "Test Item 1" } + ListElement { text: "Test Item 2" } + ListElement { text: "Test Item 3" } + } + icon_source: RibbonIcons.Beaker + } + RibbonComboBox{ + editable: true + model: ListModel { + id: model_1 + ListElement { text: "Test Item 1" } + ListElement { text: "Test Item 2" } + ListElement { text: "Test Item 3" } + } + icon_source: RibbonIcons.Calendar + onAccepted: { + if (find(editText) === -1 && editText) + model_1.append({text: editText}) + } + } + } + } + } + RibbonTabGroup{ + width: spinbox_layout.width + 30 + text: qsTr("Spin Box") + show_border: false + RowLayout{ + id: spinbox_layout + anchors.centerIn: parent + height: parent.height + spacing: 10 + ColumnLayout{ + spacing: 10 + Layout.fillHeight: true + RibbonSpinBox{ + width: 100 + } + RibbonSpinBox{ + id: spinbox + width: 80 + icon_source: RibbonIcons.DataPie + validator: DoubleValidator { + bottom: Math.min(spinbox.from, spinbox.to) + top: Math.max(spinbox.from, spinbox.to) + } + textFromValue: function(value, locale) { + return Number(value / 100).toLocaleString(locale, 'f', 2) + } + valueFromText: function(text, locale) { + return Number.fromLocaleString(locale, text) * 100 + } + } + } + } + } + } + RibbonTabPage{ + title: qsTr("Others") + RibbonTabGroup{ + width: text_layout.width + 30 + text: qsTr("Text") + RowLayout{ + id: text_layout + anchors.centerIn: parent + height: parent.height + spacing: 10 + ColumnLayout{ + spacing: 10 + Layout.fillHeight: true + RibbonText{ + font.pixelSize: 13 + text: "Test Text" + } + RibbonText{ + font.pixelSize: 13 + text: "Test Text (Read Only)" + view_only: true + } + } + } + } + RibbonTabGroup{ + width: menu_layout.width + 30 + text: qsTr("Menu") + RowLayout{ + id: menu_layout + anchors.centerIn: parent + height: parent.height + spacing: 10 + RibbonButton{ + text: qsTr("Open Menu") + icon_source: RibbonIcons.Open + onClicked: menu.popup() + } + } + } + RibbonTabGroup{ + width: popup_layout.width + 30 + text: qsTr("Popup") + RowLayout{ + id: popup_layout + anchors.centerIn: parent + height: parent.height + spacing: 10 + ColumnLayout{ + spacing: 10 + Layout.fillHeight: true + RibbonButton{ + text: qsTr("Open Popup") + icon_source: RibbonIcons.Open + onClicked: popup.open() + } + RibbonButton{ + text: qsTr("Open Popup Dialog (Double Choices)") + icon_source: RibbonIcons.Open + onClicked: { + dialog.buttonFlags = RibbonPopupDialogType.NegativeButton | RibbonPopupDialogType.PositiveButton + dialog.open() + } + } + RibbonButton{ + text: qsTr("Open Popup Dialog (Triple Choices)") + icon_source: RibbonIcons.Open + onClicked: { + dialog.buttonFlags = RibbonPopupDialogType.NegativeButton | RibbonPopupDialogType.PositiveButton | RibbonPopupDialogType.NeutralButton + dialog.open() + } + } + } + RibbonPopup{ + id: popup + height: 200 + width: height + } + RibbonPopupDialog{ + id: dialog + } + } + } + RibbonTabGroup{ + width: theme_layout.width + 30 + text: qsTr("Theme") + RowLayout{ + id: theme_layout + anchors.centerIn: parent + height: parent.height + spacing: 10 + RibbonComboBox{ + model: ListModel { + id: model_theme + ListElement { text: "Light" } + ListElement { text: "Dark" } + ListElement { text: "System" } + } + icon_source: RibbonIcons.DarkTheme + Component.onCompleted: { + let str = (RibbonTheme.theme_mode === RibbonThemeType.System ? "System" : RibbonTheme.theme_mode === RibbonThemeType.Light ? "Light" : "Dark") + currentIndex = find(str) + } + onActivated: { + if (currentText === "System") + RibbonTheme.theme_mode = RibbonThemeType.System + else if (currentText === "Light") + RibbonTheme.theme_mode = RibbonThemeType.Light + else + RibbonTheme.theme_mode = RibbonThemeType.Dark + } + } + } + } + } + } + + RibbonPaperView{ + id: view + anchors{ + top: parent.top + bottom: parent.bottom + } + top_padding: tab_bar.height + bottom_padding: bottom_bar.height + page_width: (page_slider.value / 100.0) * width + spacing: 0 + ColumnLayout{ + Layout.alignment: Qt.AlignCenter + Layout.topMargin: 30 + spacing: 20 + RibbonText{ + Layout.alignment: Qt.AlignHCenter + Layout.topMargin: 50 + text: "RibbonUI" + font{ + pixelSize: 50 + bold: true + italic: true + } + } + Image { + source: "qrc:/RibbonUI/resources/imgs/icon.png" + fillMode:Image.PreserveAspectFit + Layout.preferredHeight: 300 + Layout.preferredWidth: height + Layout.alignment: Qt.AlignHCenter + layer.enabled: true + layer.effect: RibbonShadow{} + } + RibbonText{ + Layout.alignment: Qt.AlignHCenter + text: "A Lightweight, minimalist and \nelegant Qt component library." + font{ + pixelSize: 30 + bold: true + italic: true + } + } + RibbonText{ + Layout.alignment: Qt.AlignHCenter + text: "Author: mentalfl0w" + font{ + pixelSize: 25 + bold: true + italic: true + } + } + RibbonText{ + Layout.alignment: Qt.AlignHCenter + text: "Email: mentalflow@ourdocs.cn" + font{ + pixelSize: 25 + bold: true + italic: true + } + } + RibbonText{ + Layout.alignment: Qt.AlignHCenter + text: `Current Version: V${RibbonUI.version}` + font{ + pixelSize: 20 + bold: true + italic: true + } + } + } + } + + RibbonBottomBar{ + id: bottom_bar + anchors{ + left: parent.left + right: parent.right + bottom: parent.bottom + } + right_content: RowLayout{ + clip: true + spacing:1 + Layout.preferredHeight: parent.height + layoutDirection: Qt.RightToLeft + RibbonSlider{ + id: page_slider + slide_width: 80 + show_filled_color: false + value: 70 + } + RibbonButton{ + text:"Test Button 3" + show_bg:false + adapt_height:true + icon_source: RibbonIcons.Airplane + } + RibbonButton{ + text:"Test Button 4" + show_bg:false + adapt_height:true + } + } + RibbonButton{ + text:"Test Button 5" + show_bg:false + adapt_height:true + icon_source: RibbonIcons.AccessTime + checkable: true + } + RibbonButton{ + text:"Test Button 6" + show_bg:false + adapt_height:true + } + RibbonButton{ + show_bg:false + adapt_height:true + icon_source: RibbonIcons.AppStore + checkable: true + tip_text: "Test Button 7" + } + } + + title_bar.right_content:RowLayout{ + spacing: 1 + layoutDirection: Qt.RightToLeft + RibbonButton{ + show_bg:false + icon_source: RibbonIcons.CalendarStar + icon_source_filled: RibbonIcons_Filled.CalendarStar + checkable: true + tip_text: "Test Button 11" + hover_color: Qt.rgba(0,0,0, 0.3) + pressed_color: Qt.rgba(0,0,0, 0.4) + text_color: title_bar.title_text_color + text_color_reverse: false + } + + } + title_bar.left_content:RowLayout{ + spacing: 1 + RibbonButton{ + show_bg:false + icon_source: RibbonIcons.ChevronDown + tip_text: "Test Button 8" + hover_color: Qt.rgba(0,0,0, 0.3) + pressed_color: Qt.rgba(0,0,0, 0.4) + text_color: title_bar.title_text_color + text_color_reverse: false + RibbonMenu{ + id:menu + width: 200 + Action{ + text: "Test Long Text Test Long Text Test Long Text" + checkable: true + } + RibbonMenuSeparator{} + Action{ + text: "Test Item 1" + enabled: false + } + RibbonMenu{ + width: parent.width + title: "Sub Menu" + Action { text: qsTr("Test Item 2") } + Action { text: qsTr("Test Item 3") } + } + } + onClicked:menu.popup() + } + RibbonButton{ + show_bg:false + icon_source: RibbonIcons.Apps + icon_source_filled: RibbonIcons_Filled.Apps + checkable: true + tip_text: "Test Button 9" + hover_color: Qt.rgba(0,0,0, 0.3) + pressed_color: Qt.rgba(0,0,0, 0.4) + text_color: title_bar.title_text_color + text_color_reverse: false + enabled: false + } + } +} diff --git a/example/resources/icon.rc b/example/resources/icon.rc new file mode 100644 index 0000000..3e48f9e --- /dev/null +++ b/example/resources/icon.rc @@ -0,0 +1,42 @@ +#include + +IDI_ICON1 ICON "imgs/icon.ico" + +#define STR(x) #x +#define VER_JOIN(a,b,c,d) STR(a.b.c.d) +#define VER_JOIN_(x) VER_JOIN x +#define VER_STR VER_JOIN_((RIBBONUIAPP_VERSION)) + +VS_VERSION_INFO VERSIONINFO +FILEVERSION RIBBONUIAPP_VERSION +PRODUCTVERSION RIBBONUIAPP_VERSION +FILEFLAGSMASK 0x3fL +#ifdef _DEBUG +FILEFLAGS VS_FF_DEBUG +#else +FILEFLAGS 0x0L +#endif +FILEOS VOS_NT_WINDOWS32 +FILETYPE VFT_APP +FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "Comments", "Made by Mentalflow." + VALUE "CompanyName", "Mentalflow" + VALUE "FileDescription", "RibbonUI APP" + VALUE "FileVersion", VER_STR + VALUE "InternalName", "" + VALUE "LegalCopyright", "Copyright (C) 2023" + VALUE "OriginalFilename", "" + VALUE "ProductName", "RibbonUI APP" + VALUE "ProductVersion", VER_STR + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END \ No newline at end of file diff --git a/example/resources/imgs/AppIcon.icns b/example/resources/imgs/AppIcon.icns new file mode 100644 index 0000000..cc40d60 Binary files /dev/null and b/example/resources/imgs/AppIcon.icns differ diff --git a/example/resources/imgs/heart.png b/example/resources/imgs/heart.png new file mode 100644 index 0000000..41735f4 Binary files /dev/null and b/example/resources/imgs/heart.png differ diff --git a/example/resources/imgs/icon.ico b/example/resources/imgs/icon.ico new file mode 100644 index 0000000..7ea7867 Binary files /dev/null and b/example/resources/imgs/icon.ico differ diff --git a/example/resources/imgs/icon.png b/example/resources/imgs/icon.png new file mode 100644 index 0000000..d1ab301 Binary files /dev/null and b/example/resources/imgs/icon.png differ diff --git a/example/resources/imgs/search.png b/example/resources/imgs/search.png new file mode 100644 index 0000000..701db42 Binary files /dev/null and b/example/resources/imgs/search.png differ diff --git a/lib_source/CMakeLists.txt b/lib_source/CMakeLists.txt new file mode 100644 index 0000000..025d672 --- /dev/null +++ b/lib_source/CMakeLists.txt @@ -0,0 +1,64 @@ +cmake_minimum_required(VERSION 3.21) + +project(RibbonUI VERSION 1.0.0.0 LANGUAGES CXX) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +if(APPLE) + set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "" FORCE) +endif() + +find_package(Qt6 6.2 COMPONENTS Core Quick Qml ShaderTools REQUIRED) + +add_definitions(-DRIBBONUI_VERSION=1,0,0,0) + +if (RIBBONUI_BUILD_STATIC_LIB) + set(LIB_TYPE "STATIC") + set(PLUGIN_TARGET_NAME "") + qt_add_resources(${PROJECT_NAME} RibbonUI.qmltypes qmldir) +else() + set(LIB_TYPE "SHARED") + set(PLUGIN_TARGET_NAME ${PROJECT_NAME}) +endif() + +qt_add_library(${PROJECT_NAME} ${LIB_TYPE}) +qt_add_qml_module(${PROJECT_NAME} + PLUGIN_TARGET ${PLUGIN_TARGET_NAME} + OUTPUT_DIRECTORY ${CMAKE_PREFIX_PATH}/qml/RibbonUI + URI RibbonUI + VERSION 1.0 + QML_FILES qml/RibbonTabBar.qml qml/RibbonTabButton.qml qml/RibbonView.qml + qml/RibbonTabPage.qml qml/RibbonTabGroup.qml qml/RibbonButton.qml + qml/RibbonBottomBar.qml qml/RibbonIcon.qml qml/RibbonToolTip.qml + qml/RibbonTitleBar.qml qml/RibbonSlider.qml qml/RibbonSwitchButton.qml + qml/RibbonCheckBox.qml qml/RibbonMenu.qml qml/RibbonMenuItem.qml + qml/RibbonShadow.qml qml/RibbonBlur.qml qml/RibbonMenuSeparator.qml + qml/RibbonPaperView.qml qml/RibbonPushButton.qml qml/RibbonRectangle.qml + qml/RibbonText.qml qml/RibbonTextBoxMenu.qml qml/RibbonPopup.qml + qml/RibbonPopupDialog.qml qml/RibbonLineEdit.qml qml/RibbonTextEdit.qml + qml/RibbonComboBox.qml qml/RibbonSpinBox.qml + SOURCES ribbonui.cpp ribbonui.h definitions.h ribbontheme.h ribbontheme.cpp + RESOURCES resources/FluentSystemIcons-Resizable.ttf resources/imgs/icon.png +) + +qt_add_shaders(${PROJECT_NAME} "shaders" + BATCHABLE + PRECOMPILE + OPTIMIZED + PREFIX + "RibbonUI" + FILES + "effects/gaussianblur.frag" +) + +target_compile_definitions(${PROJECT_NAME} + PRIVATE $<$,$>:QT_QML_DEBUG>) +target_link_libraries(${PROJECT_NAME} PRIVATE + Qt::Quick + Qt::CorePrivate + Qt::QuickPrivate + Qt::QmlPrivate +) + +target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/lib_source/RibbonUI.qmltypes b/lib_source/RibbonUI.qmltypes new file mode 100644 index 0000000..7207e7f --- /dev/null +++ b/lib_source/RibbonUI.qmltypes @@ -0,0 +1,4759 @@ +import QtQuick.tooling 1.2 + +// This file describes the plugin-supplied types contained in the library. +// It is used for QML tooling purposes only. +// +// This file was auto-generated by qmltyperegistrar. + +Module { + Component { + file: "definitions.h" + name: "RibbonIconsFilledEnum" + accessSemantics: "none" + exports: ["RibbonUI/RibbonIcons_Filled 1.0"] + isCreatable: false + exportMetaObjectRevisions: [256] + Enum { + name: "RibbonIcons_Filled" + values: [ + "AccessTime", + "Accessibility", + "AccessibilityCheckmark", + "Add", + "AddCircle", + "AddSquare", + "AddSquareMultiple", + "AddSubtractCircle", + "Airplane", + "AirplaneLanding", + "AirplaneTakeOff", + "Album", + "AlbumAdd", + "Alert", + "AlertBadge", + "AlertOff", + "AlertOn", + "AlertSnooze", + "AlertUrgent", + "AlignBottom", + "AlignCenterHorizontal", + "AlignCenterVertical", + "AlignEndHorizontal", + "AlignEndVertical", + "AlignLeft", + "AlignRight", + "AlignSpaceAroundHorizontal", + "AlignSpaceAroundVertical", + "AlignSpaceBetweenHorizontal", + "AlignSpaceBetweenVertical", + "AlignSpaceEvenlyHorizontal", + "AlignSpaceEvenlyVertical", + "AlignSpaceFitVertical", + "AlignStartHorizontal", + "AlignStartVertical", + "AlignStraighten", + "AlignStretchHorizontal", + "AlignStretchVertical", + "AlignTop", + "AnimalCat", + "AnimalDog", + "AnimalRabbit", + "AnimalRabbitOff", + "AnimalTurtle", + "AppFolder", + "AppGeneric", + "AppRecent", + "AppTitle", + "ApprovalsApp", + "Apps", + "AppsAddIn", + "AppsList", + "AppsListDetail", + "Archive", + "ArchiveArrowBack", + "ArchiveMultiple", + "ArchiveSettings", + "ArrowAutofitContent", + "ArrowAutofitDown", + "ArrowAutofitHeight", + "ArrowAutofitHeightDotted", + "ArrowAutofitHeightIn", + "ArrowAutofitUp", + "ArrowAutofitWidth", + "ArrowAutofitWidthDotted", + "ArrowBetweenDown", + "ArrowBetweenUp", + "ArrowBidirectionalLeftRight", + "ArrowBidirectionalUpDown", + "ArrowBounce", + "ArrowCircleDown", + "ArrowCircleDownDouble", + "ArrowCircleDownRight", + "ArrowCircleDownSplit", + "ArrowCircleDownUp", + "ArrowCircleLeft", + "ArrowCircleRight", + "ArrowCircleUp", + "ArrowCircleUpLeft", + "ArrowCircleUpRight", + "ArrowClockwise", + "ArrowClockwiseDashes", + "ArrowCollapseAll", + "ArrowCounterclockwise", + "ArrowCounterclockwiseDashes", + "ArrowCurveDownLeft", + "ArrowCurveDownRight", + "ArrowCurveUpLeft", + "ArrowCurveUpRight", + "ArrowDown", + "ArrowDownLeft", + "ArrowDownload", + "ArrowEject", + "ArrowEnter", + "ArrowEnterLeft", + "ArrowEnterUp", + "ArrowExit", + "ArrowExpand", + "ArrowExport", + "ArrowExportLtr", + "ArrowExportRtl", + "ArrowExportUp", + "ArrowFit", + "ArrowFitIn", + "ArrowFlowDiagonalUpRight", + "ArrowFlowUpRight", + "ArrowFlowUpRightRectangleMultiple", + "ArrowForward", + "ArrowForwardDownLightning", + "ArrowForwardDownPerson", + "ArrowHookDownLeft", + "ArrowHookDownRight", + "ArrowHookUpLeft", + "ArrowHookUpRight", + "ArrowImport", + "ArrowJoin", + "ArrowLeft", + "ArrowMaximize", + "ArrowMaximizeVertical", + "ArrowMinimize", + "ArrowMinimizeVertical", + "ArrowMove", + "ArrowMoveInward", + "ArrowNext", + "ArrowOutlineDownLeft", + "ArrowOutlineUpRight", + "ArrowParagraph", + "ArrowPrevious", + "ArrowRedo", + "ArrowRepeat1", + "ArrowRepeatAll", + "ArrowRepeatAllOff", + "ArrowReply", + "ArrowReplyAll", + "ArrowReplyDown", + "ArrowReset", + "ArrowRight", + "ArrowRotateClockwise", + "ArrowRotateCounterclockwise", + "ArrowRouting", + "ArrowRoutingRectangleMultiple", + "ArrowShuffle", + "ArrowShuffleOff", + "ArrowSort", + "ArrowSortDown", + "ArrowSortDownLines", + "ArrowSortUp", + "ArrowSplit", + "ArrowSprint", + "ArrowSquareDown", + "ArrowSquareUpRight", + "ArrowStepBack", + "ArrowStepIn", + "ArrowStepInDiagonalDownLeft", + "ArrowStepInLeft", + "ArrowStepInRight", + "ArrowStepOut", + "ArrowStepOver", + "ArrowSwap", + "ArrowSync", + "ArrowSyncCheckmark", + "ArrowSyncCircle", + "ArrowSyncDismiss", + "ArrowSyncOff", + "ArrowTrending", + "ArrowTrendingCheckmark", + "ArrowTrendingDown", + "ArrowTrendingLines", + "ArrowTrendingSettings", + "ArrowTrendingSparkle", + "ArrowTrendingText", + "ArrowTrendingWrench", + "ArrowTurnBidirectionalDownRight", + "ArrowTurnDownLeft", + "ArrowTurnDownRight", + "ArrowTurnDownUp", + "ArrowTurnLeftDown", + "ArrowTurnLeftRight", + "ArrowTurnLeftUp", + "ArrowTurnRight", + "ArrowTurnRightDown", + "ArrowTurnRightLeft", + "ArrowTurnRightUp", + "ArrowTurnUpDown", + "ArrowTurnUpLeft", + "ArrowUndo", + "ArrowUp", + "ArrowUpLeft", + "ArrowUpRight", + "ArrowUpload", + "ArrowWrap", + "ArrowWrapOff", + "ArrowsBidirectional", + "Attach", + "AttachArrowRight", + "AttachText", + "AutoFitHeight", + "AutoFitWidth", + "Autocorrect", + "Autosum", + "Backpack", + "BackpackAdd", + "Backspace", + "Badge", + "Balloon", + "BarcodeScanner", + "Battery0", + "Battery1", + "Battery10", + "Battery2", + "Battery3", + "Battery4", + "Battery5", + "Battery6", + "Battery7", + "Battery8", + "Battery9", + "BatteryCharge", + "BatteryCheckmark", + "BatterySaver", + "BatteryWarning", + "Beach", + "Beaker", + "BeakerEdit", + "BeakerOff", + "BeakerSettings", + "Bed", + "BezierCurveSquare", + "BinFull", + "BinRecycle", + "BinRecycleFull", + "BinderTriangle", + "Bluetooth", + "BluetoothConnected", + "BluetoothDisabled", + "BluetoothSearching", + "Blur", + "Board", + "BoardGames", + "BoardHeart", + "BoardSplit", + "Book", + "BookAdd", + "BookArrowClockwise", + "BookClock", + "BookCoins", + "BookCompass", + "BookContacts", + "BookDatabase", + "BookDefault", + "BookDismiss", + "BookExclamationMark", + "BookGlobe", + "BookInformation", + "BookLetter", + "BookNumber", + "BookOpen", + "BookOpenGlobe", + "BookOpenMicrophone", + "BookPulse", + "BookQuestionMark", + "BookQuestionMarkRtl", + "BookSearch", + "BookStar", + "BookTemplate", + "BookTheta", + "BookToolbox", + "Bookmark", + "BookmarkAdd", + "BookmarkMultiple", + "BookmarkOff", + "BookmarkSearch", + "BorderAll", + "BorderBottom", + "BorderBottomDouble", + "BorderBottomThick", + "BorderLeft", + "BorderLeftRight", + "BorderNone", + "BorderOutside", + "BorderOutsideThick", + "BorderRight", + "BorderTop", + "BorderTopBottom", + "BorderTopBottomDouble", + "BorderTopBottomThick", + "Bot", + "BotAdd", + "BotSparkle", + "BowTie", + "BowlChopsticks", + "BowlSalad", + "Box", + "BoxArrowLeft", + "BoxArrowUp", + "BoxCheckmark", + "BoxDismiss", + "BoxEdit", + "BoxMultiple", + "BoxMultipleArrowLeft", + "BoxMultipleArrowRight", + "BoxMultipleCheckmark", + "BoxMultipleSearch", + "BoxSearch", + "BoxToolbox", + "Braces", + "BracesVariable", + "BrainCircuit", + "Branch", + "BranchCompare", + "BranchFork", + "BranchForkHint", + "BranchForkLink", + "BranchRequest", + "BreakoutRoom", + "Briefcase", + "BriefcaseMedical", + "BriefcaseOff", + "BriefcaseSearch", + "BrightnessHigh", + "BrightnessLow", + "BroadActivityFeed", + "Broom", + "BubbleMultiple", + "Bug", + "BugArrowCounterclockwise", + "BugProhibited", + "Building", + "BuildingBank", + "BuildingBankLink", + "BuildingBankToolbox", + "BuildingDesktop", + "BuildingFactory", + "BuildingGovernment", + "BuildingHome", + "BuildingLighthouse", + "BuildingMosque", + "BuildingMultiple", + "BuildingPeople", + "BuildingRetail", + "BuildingRetailMoney", + "BuildingRetailMore", + "BuildingRetailShield", + "BuildingRetailToolbox", + "BuildingShop", + "BuildingSkyscraper", + "BuildingTownhouse", + "Button", + "Calculator", + "CalculatorArrowClockwise", + "CalculatorMultiple", + "Calendar", + "Calendar3Day", + "CalendarAdd", + "CalendarAgenda", + "CalendarArrowCounterclockwise", + "CalendarArrowDown", + "CalendarArrowRight", + "CalendarAssistant", + "CalendarCancel", + "CalendarChat", + "CalendarCheckmark", + "CalendarClock", + "CalendarDataBar", + "CalendarDate", + "CalendarDay", + "CalendarEdit", + "CalendarEmpty", + "CalendarError", + "CalendarEye", + "CalendarInfo", + "CalendarLock", + "CalendarLtr", + "CalendarMail", + "CalendarMention", + "CalendarMonth", + "CalendarMultiple", + "CalendarPattern", + "CalendarPerson", + "CalendarPhone", + "CalendarPlay", + "CalendarQuestionMark", + "CalendarReply", + "CalendarRtl", + "CalendarSearch", + "CalendarSettings", + "CalendarShield", + "CalendarStar", + "CalendarSync", + "CalendarToday", + "CalendarToolbox", + "CalendarWeekNumbers", + "CalendarWeekStart", + "CalendarWorkWeek", + "Call", + "CallAdd", + "CallCheckmark", + "CallConnecting", + "CallDismiss", + "CallEnd", + "CallExclamation", + "CallForward", + "CallInbound", + "CallMissed", + "CallOutbound", + "CallPark", + "CallPause", + "CallProhibited", + "CallTransfer", + "CallWarning", + "CalligraphyPen", + "CalligraphyPenCheckmark", + "CalligraphyPenError", + "CalligraphyPenQuestionMark", + "Camera", + "CameraAdd", + "CameraDome", + "CameraEdit", + "CameraOff", + "CameraSparkles", + "CameraSwitch", + "CardUi", + "CaretDown", + "CaretDownRight", + "CaretLeft", + "CaretRight", + "CaretUp", + "Cart", + "Cast", + "CastMultiple", + "CatchUp", + "Cellular3g", + "Cellular4g", + "Cellular5g", + "CellularData1", + "CellularData2", + "CellularData3", + "CellularData4", + "CellularData5", + "CellularOff", + "CellularWarning", + "CenterHorizontal", + "CenterVertical", + "Certificate", + "Channel", + "ChannelAdd", + "ChannelAlert", + "ChannelArrowLeft", + "ChannelDismiss", + "ChannelShare", + "ChannelSubtract", + "ChartMultiple", + "ChartPerson", + "Chat", + "ChatAdd", + "ChatArrowBack", + "ChatArrowDoubleBack", + "ChatBubblesQuestion", + "ChatCursor", + "ChatDismiss", + "ChatEmpty", + "ChatHelp", + "ChatMail", + "ChatMultiple", + "ChatMultipleHeart", + "ChatOff", + "ChatSettings", + "ChatSparkle", + "ChatVideo", + "ChatWarning", + "Check", + "Checkbox1", + "Checkbox2", + "CheckboxArrowRight", + "CheckboxChecked", + "CheckboxCheckedSync", + "CheckboxIndeterminate", + "CheckboxPerson", + "CheckboxUnchecked", + "CheckboxWarning", + "Checkmark", + "CheckmarkCircle", + "CheckmarkCircleSquare", + "CheckmarkLock", + "CheckmarkNote", + "CheckmarkSquare", + "CheckmarkStarburst", + "CheckmarkUnderlineCircle", + "Chess", + "ChevronCircleDown", + "ChevronCircleLeft", + "ChevronCircleRight", + "ChevronCircleUp", + "ChevronDoubleDown", + "ChevronDoubleLeft", + "ChevronDoubleRight", + "ChevronDoubleUp", + "ChevronDown", + "ChevronDownUp", + "ChevronLeft", + "ChevronRight", + "ChevronUp", + "ChevronUpDown", + "Circle", + "CircleEdit", + "CircleEraser", + "CircleHalfFill", + "CircleHint", + "CircleHintHalfVertical", + "CircleImage", + "CircleLine", + "CircleMultipleSubtractCheckmark", + "CircleOff", + "CircleSmall", + "City", + "Class", + "Classification", + "ClearFormatting", + "Clipboard", + "Clipboard3Day", + "ClipboardArrowRight", + "ClipboardBulletList", + "ClipboardBulletListLtr", + "ClipboardBulletListRtl", + "ClipboardCheckmark", + "ClipboardClock", + "ClipboardCode", + "ClipboardDataBar", + "ClipboardDay", + "ClipboardEdit", + "ClipboardError", + "ClipboardHeart", + "ClipboardImage", + "ClipboardLetter", + "ClipboardLink", + "ClipboardMonth", + "ClipboardMore", + "ClipboardNote", + "ClipboardPaste", + "ClipboardPulse", + "ClipboardSearch", + "ClipboardSettings", + "ClipboardTask", + "ClipboardTaskAdd", + "ClipboardTaskListLtr", + "ClipboardTaskListRtl", + "ClipboardTextEdit", + "ClipboardTextLtr", + "ClipboardTextRtl", + "Clock", + "ClockAlarm", + "ClockArrowDownload", + "ClockDismiss", + "ClockLock", + "ClockPause", + "ClockToolbox", + "ClosedCaption", + "ClosedCaptionOff", + "Cloud", + "CloudAdd", + "CloudArchive", + "CloudArrowDown", + "CloudArrowUp", + "CloudBidirectional", + "CloudCheckmark", + "CloudDatabase", + "CloudDesktop", + "CloudDismiss", + "CloudEdit", + "CloudError", + "CloudFlow", + "CloudLink", + "CloudOff", + "CloudSwap", + "CloudSync", + "CloudWords", + "Clover", + "Code", + "CodeBlock", + "CodeCircle", + "CodeText", + "CodeTextEdit", + "Collections", + "CollectionsAdd", + "Color", + "ColorBackground", + "ColorFill", + "ColorLine", + "Column", + "ColumnArrowRight", + "ColumnDoubleCompare", + "ColumnEdit", + "ColumnSingleCompare", + "ColumnTriple", + "ColumnTripleEdit", + "Comma", + "Comment", + "CommentAdd", + "CommentArrowLeft", + "CommentArrowRight", + "CommentCheckmark", + "CommentDismiss", + "CommentEdit", + "CommentError", + "CommentLightning", + "CommentLink", + "CommentMention", + "CommentMultiple", + "CommentMultipleCheckmark", + "CommentMultipleLink", + "CommentNote", + "CommentOff", + "Communication", + "CommunicationPerson", + "CompassNorthwest", + "Compose", + "ConferenceRoom", + "Connected", + "Connector", + "ContactCard", + "ContactCardGroup", + "ContactCardLink", + "ContactCardRibbon", + "ContentSettings", + "ContentView", + "ContentViewGallery", + "ContractDownLeft", + "ControlButton", + "ConvertRange", + "Cookies", + "Copy", + "CopyAdd", + "CopyArrowRight", + "CopySelect", + "Couch", + "CreditCardClock", + "CreditCardPerson", + "CreditCardToolbox", + "Crop", + "CropInterim", + "CropInterimOff", + "Crown", + "Cube", + "CubeAdd", + "CubeArrowCurveDown", + "CubeLink", + "CubeMultiple", + "CubeQuick", + "CubeRotate", + "CubeSync", + "CubeTree", + "CurrencyDollarEuro", + "CurrencyDollarRupee", + "Cursor", + "CursorClick", + "CursorHover", + "CursorHoverOff", + "CursorProhibited", + "Cut", + "DarkTheme", + "DataArea", + "DataBarHorizontal", + "DataBarVertical", + "DataBarVerticalAdd", + "DataBarVerticalStar", + "DataFunnel", + "DataHistogram", + "DataLine", + "DataPie", + "DataScatter", + "DataSunburst", + "DataTreemap", + "DataTrending", + "DataUsage", + "DataUsageEdit", + "DataUsageSettings", + "DataUsageToolbox", + "DataWaterfall", + "DataWhisker", + "Database", + "DatabaseArrowDown", + "DatabaseArrowRight", + "DatabaseArrowUp", + "DatabaseLightning", + "DatabaseLink", + "DatabaseMultiple", + "DatabasePerson", + "DatabasePlugConnected", + "DatabaseSearch", + "DatabaseSwitch", + "DatabaseWarning", + "DatabaseWindow", + "DecimalArrowLeft", + "DecimalArrowRight", + "Delete", + "DeleteArrowBack", + "DeleteDismiss", + "DeleteLines", + "DeleteOff", + "Dentist", + "DesignIdeas", + "Desk", + "Desktop", + "DesktopArrowDown", + "DesktopArrowRight", + "DesktopCheckmark", + "DesktopCursor", + "DesktopEdit", + "DesktopFlow", + "DesktopKeyboard", + "DesktopMac", + "DesktopPulse", + "DesktopSignal", + "DesktopSpeaker", + "DesktopSpeakerOff", + "DesktopSync", + "DesktopToolbox", + "DesktopTower", + "DeveloperBoard", + "DeveloperBoardLightning", + "DeveloperBoardLightningToolbox", + "DeveloperBoardSearch", + "DeviceEq", + "DeviceMeetingRoom", + "DeviceMeetingRoomRemote", + "Diagram", + "Dialpad", + "DialpadOff", + "Diamond", + "Directions", + "Dishwasher", + "Dismiss", + "DismissCircle", + "DismissSquare", + "DismissSquareMultiple", + "Diversity", + "DividerShort", + "DividerTall", + "Dock", + "DockRow", + "Doctor", + "Document100", + "Document", + "DocumentAdd", + "DocumentArrowDown", + "DocumentArrowLeft", + "DocumentArrowRight", + "DocumentArrowUp", + "DocumentBorder", + "DocumentBorderPrint", + "DocumentBriefcase", + "DocumentBulletList", + "DocumentBulletListArrowLeft", + "DocumentBulletListClock", + "DocumentBulletListCube", + "DocumentBulletListMultiple", + "DocumentBulletListOff", + "DocumentCatchUp", + "DocumentCheckmark", + "DocumentChevronDouble", + "DocumentCopy", + "DocumentCss", + "DocumentData", + "DocumentDataLink", + "DocumentDatabase", + "DocumentDismiss", + "DocumentEdit", + "DocumentEndnote", + "DocumentError", + "DocumentFit", + "DocumentFlowchart", + "DocumentFolder", + "DocumentFooter", + "DocumentFooterDismiss", + "DocumentHeader", + "DocumentHeaderArrowDown", + "DocumentHeaderDismiss", + "DocumentHeaderFooter", + "DocumentHeart", + "DocumentHeartPulse", + "DocumentImage", + "DocumentJava", + "DocumentJavascript", + "DocumentKey", + "DocumentLandscape", + "DocumentLandscapeData", + "DocumentLandscapeSplit", + "DocumentLandscapeSplitHint", + "DocumentLink", + "DocumentLock", + "DocumentMargins", + "DocumentMention", + "DocumentMultiple", + "DocumentMultiplePercent", + "DocumentMultipleProhibited", + "DocumentMultipleSync", + "DocumentOnePage", + "DocumentOnePageAdd", + "DocumentOnePageColumns", + "DocumentOnePageLink", + "DocumentOnePageMultiple", + "DocumentOnePageSparkle", + "DocumentPageBottomCenter", + "DocumentPageBottomLeft", + "DocumentPageBottomRight", + "DocumentPageBreak", + "DocumentPageNumber", + "DocumentPageTopCenter", + "DocumentPageTopLeft", + "DocumentPageTopRight", + "DocumentPdf", + "DocumentPercent", + "DocumentPerson", + "DocumentPill", + "DocumentPrint", + "DocumentProhibited", + "DocumentQuestionMark", + "DocumentQueue", + "DocumentQueueAdd", + "DocumentQueueMultiple", + "DocumentRibbon", + "DocumentSass", + "DocumentSave", + "DocumentSearch", + "DocumentSettings", + "DocumentSplitHint", + "DocumentSplitHintOff", + "DocumentSync", + "DocumentTable", + "DocumentTableArrowRight", + "DocumentTableCheckmark", + "DocumentTableCube", + "DocumentTableSearch", + "DocumentTableTruck", + "DocumentText", + "DocumentTextClock", + "DocumentTextExtract", + "DocumentTextLink", + "DocumentTextToolbox", + "DocumentToolbox", + "DocumentWidth", + "DocumentYml", + "Door", + "DoorArrowLeft", + "DoorArrowRight", + "DoorTag", + "DoubleSwipeDown", + "DoubleSwipeUp", + "DoubleTapSwipeDown", + "DoubleTapSwipeUp", + "Drafts", + "Drag", + "DrawImage", + "DrawShape", + "DrawText", + "DrawerAdd", + "DrawerArrowDownload", + "DrawerDismiss", + "DrawerPlay", + "DrawerSubtract", + "DrinkBeer", + "DrinkBottle", + "DrinkBottleOff", + "DrinkCoffee", + "DrinkMargarita", + "DrinkToGo", + "DrinkWine", + "DriveTrain", + "Drop", + "DualScreen", + "DualScreenAdd", + "DualScreenArrowRight", + "DualScreenArrowUp", + "DualScreenClock", + "DualScreenClosedAlert", + "DualScreenDesktop", + "DualScreenDismiss", + "DualScreenGroup", + "DualScreenHeader", + "DualScreenLock", + "DualScreenMirror", + "DualScreenPagination", + "DualScreenSettings", + "DualScreenSpan", + "DualScreenSpeaker", + "DualScreenStatusBar", + "DualScreenTablet", + "DualScreenUpdate", + "DualScreenVerticalScroll", + "DualScreenVibrate", + "Dumbbell", + "Dust", + "Earth", + "EarthLeaf", + "Edit", + "EditArrowBack", + "EditOff", + "EditProhibited", + "EditSettings", + "Elevator", + "Emoji", + "EmojiAdd", + "EmojiAngry", + "EmojiEdit", + "EmojiHand", + "EmojiHint", + "EmojiLaugh", + "EmojiMeh", + "EmojiMultiple", + "EmojiSad", + "EmojiSadSlight", + "EmojiSmileSlight", + "EmojiSparkle", + "EmojiSurprise", + "Engine", + "EqualCircle", + "EqualOff", + "Eraser", + "EraserMedium", + "EraserSegment", + "EraserSmall", + "EraserTool", + "ErrorCircle", + "ErrorCircleSettings", + "ExpandUpLeft", + "ExpandUpRight", + "ExtendedDock", + "Eye", + "EyeLines", + "EyeOff", + "EyeTracking", + "EyeTrackingOff", + "Eyedropper", + "EyedropperOff", + "FStop", + "FastAcceleration", + "FastForward", + "Fax", + "Feed", + "Filmstrip", + "FilmstripPlay", + "FilmstripSplit", + "Filter", + "FilterAdd", + "FilterDismiss", + "FilterSync", + "Fingerprint", + "Fire", + "Fireplace", + "FixedWidth", + "Flag", + "FlagCheckered", + "FlagClock", + "FlagOff", + "FlagPride", + "FlagPrideIntersexInclusiveProgress", + "FlagPridePhiladelphia", + "FlagPrideProgress", + "Flash", + "FlashAdd", + "FlashAuto", + "FlashCheckmark", + "FlashFlow", + "FlashOff", + "FlashPlay", + "FlashSettings", + "FlashSparkle", + "Flashlight", + "FlashlightOff", + "FlipHorizontal", + "FlipVertical", + "Flow", + "Flowchart", + "FlowchartCircle", + "Fluent", + "Fluid", + "Folder", + "FolderAdd", + "FolderArrowLeft", + "FolderArrowRight", + "FolderArrowUp", + "FolderBriefcase", + "FolderGlobe", + "FolderLightning", + "FolderLink", + "FolderList", + "FolderMail", + "FolderOpen", + "FolderOpenVertical", + "FolderPeople", + "FolderPerson", + "FolderProhibited", + "FolderSwap", + "FolderSync", + "FolderZip", + "FontDecrease", + "FontIncrease", + "FontSpaceTrackingIn", + "FontSpaceTrackingOut", + "Food", + "FoodApple", + "FoodCake", + "FoodCarrot", + "FoodChickenLeg", + "FoodEgg", + "FoodFish", + "FoodGrains", + "FoodPizza", + "FoodToast", + "Form", + "FormMultiple", + "FormNew", + "Fps120", + "Fps240", + "Fps30", + "Fps60", + "Fps960", + "Frame", + "FullScreenMaximize", + "FullScreenMinimize", + "Games", + "GanttChart", + "Gas", + "GasPump", + "Gather", + "Gauge", + "GaugeAdd", + "Gavel", + "GavelProhibited", + "Gesture", + "Gif", + "Gift", + "GiftCard", + "GiftCardAdd", + "GiftCardArrowRight", + "GiftCardMoney", + "GiftCardMultiple", + "GiftOpen", + "Glance", + "GlanceHorizontal", + "Glasses", + "GlassesOff", + "Globe", + "GlobeAdd", + "GlobeClock", + "GlobeDesktop", + "GlobeLocation", + "GlobePerson", + "GlobeProhibited", + "GlobeSearch", + "GlobeShield", + "GlobeStar", + "GlobeSurface", + "GlobeVideo", + "Grid", + "GridDots", + "GridKanban", + "Group", + "GroupDismiss", + "GroupList", + "GroupReturn", + "Guardian", + "Guest", + "GuestAdd", + "Guitar", + "HandDraw", + "HandLeft", + "HandLeftChat", + "HandOpenHeart", + "HandRight", + "HandRightOff", + "HandWave", + "Handshake", + "HardDrive", + "HatGraduation", + "HatGraduationSparkle", + "Hd", + "Hdr", + "HdrOff", + "Headphones", + "HeadphonesSoundWave", + "Headset", + "HeadsetAdd", + "HeadsetVr", + "Heart", + "HeartBroken", + "HeartCircle", + "HeartCircleHint", + "HeartOff", + "HeartPulse", + "HeartPulseCheckmark", + "HeartPulseError", + "HeartPulseWarning", + "Hexagon", + "HexagonThree", + "Highlight", + "HighlightAccent", + "HighlightLink", + "History", + "HistoryDismiss", + "Home", + "HomeAdd", + "HomeCheckmark", + "HomeDatabase", + "HomeHeart", + "HomeMore", + "HomePerson", + "HomeSplit", + "Hourglass", + "HourglassHalf", + "HourglassOneQuarter", + "HourglassThreeQuarter", + "Icons", + "Image", + "ImageAdd", + "ImageAltText", + "ImageArrowBack", + "ImageArrowCounterclockwise", + "ImageArrowForward", + "ImageBorder", + "ImageCircle", + "ImageCopy", + "ImageEdit", + "ImageGlobe", + "ImageMultiple", + "ImageMultipleOff", + "ImageOff", + "ImageProhibited", + "ImageReflection", + "ImageSearch", + "ImageShadow", + "ImageSparkle", + "ImageStack", + "ImageTable", + "ImmersiveReader", + "Important", + "Incognito", + "Info", + "InfoShield", + "InkStroke", + "InkStrokeArrowDown", + "InkStrokeArrowUpDown", + "InkingTool", + "InkingToolAccent", + "InprivateAccount", + "Insert", + "IosChevronRight", + "Iot", + "IotAlert", + "Javascript", + "Joystick", + "Key", + "KeyCommand", + "KeyMultiple", + "KeyReset", + "Keyboard123", + "Keyboard", + "KeyboardDock", + "KeyboardLayoutFloat", + "KeyboardLayoutOneHandedLeft", + "KeyboardLayoutResize", + "KeyboardLayoutSplit", + "KeyboardShift", + "KeyboardShiftUppercase", + "KeyboardTab", + "Laptop", + "LaptopDismiss", + "LaptopShield", + "LaserTool", + "Lasso", + "LauncherSettings", + "Layer", + "LayerDiagonal", + "LayerDiagonalPerson", + "LeafOne", + "LeafThree", + "LeafTwo", + "LearningApp", + "Library", + "Lightbulb", + "LightbulbCheckmark", + "LightbulbCircle", + "LightbulbFilament", + "LightbulbPerson", + "Likert", + "Line", + "LineDashes", + "LineHorizontal1", + "LineHorizontal1Dashes", + "LineHorizontal2DashesSolid", + "LineHorizontal3", + "LineHorizontal4", + "LineHorizontal4Search", + "LineHorizontal5", + "LineHorizontal5Error", + "LineStyle", + "LineThickness", + "Link", + "LinkDismiss", + "LinkEdit", + "LinkMultiple", + "LinkSquare", + "LinkToolbox", + "List", + "ListBar", + "ListBarTree", + "ListBarTreeOffset", + "ListRtl", + "Live", + "LiveOff", + "LocalLanguage", + "Location", + "LocationAdd", + "LocationAddLeft", + "LocationAddRight", + "LocationAddUp", + "LocationArrow", + "LocationArrowLeft", + "LocationArrowRight", + "LocationArrowUp", + "LocationDismiss", + "LocationLive", + "LocationOff", + "LockClosed", + "LockClosedKey", + "LockMultiple", + "LockOpen", + "LockShield", + "Lottery", + "Luggage", + "Mail", + "MailAdd", + "MailAlert", + "MailAllRead", + "MailAllUnread", + "MailArrowDoubleBack", + "MailArrowDown", + "MailArrowForward", + "MailArrowUp", + "MailAttach", + "MailCheckmark", + "MailClock", + "MailCopy", + "MailDismiss", + "MailEdit", + "MailError", + "MailInbox", + "MailInboxAdd", + "MailInboxAll", + "MailInboxArrowDown", + "MailInboxArrowRight", + "MailInboxArrowUp", + "MailInboxCheckmark", + "MailInboxDismiss", + "MailLink", + "MailList", + "MailMultiple", + "MailOff", + "MailOpenPerson", + "MailPause", + "MailProhibited", + "MailRead", + "MailReadMultiple", + "MailSettings", + "MailShield", + "MailTemplate", + "MailUnread", + "MailWarning", + "Map", + "MapDrive", + "Markdown", + "MatchAppLayout", + "MathFormatLinear", + "MathFormatProfessional", + "MathFormula", + "MathSymbols", + "Maximize", + "MeetNow", + "Megaphone", + "MegaphoneCircle", + "MegaphoneLoud", + "MegaphoneOff", + "Mention", + "MentionArrowDown", + "MentionBrackets", + "Merge", + "Mic", + "MicOff", + "MicProhibited", + "MicPulse", + "MicPulseOff", + "MicRecord", + "MicSettings", + "MicSparkle", + "MicSync", + "Microscope", + "Midi", + "MobileOptimized", + "Mold", + "Molecule", + "Money", + "MoneyCalculator", + "MoneyDismiss", + "MoneyHand", + "MoneyOff", + "MoneySettings", + "MoreCircle", + "MoreHorizontal", + "MoreVertical", + "MountainLocationBottom", + "MountainLocationTop", + "MountainTrail", + "MoviesAndTv", + "Multiplier12x", + "Multiplier15x", + "Multiplier18x", + "Multiplier1x", + "Multiplier2x", + "Multiplier5x", + "MultiselectLtr", + "MultiselectRtl", + "MusicNote1", + "MusicNote2", + "MusicNote2Play", + "MusicNoteOff1", + "MusicNoteOff2", + "MyLocation", + "Navigation", + "NavigationLocationTarget", + "NavigationPlay", + "NavigationUnread", + "NetworkCheck", + "New", + "News", + "Next", + "NextFrame", + "Note", + "NoteAdd", + "NoteEdit", + "NotePin", + "Notebook", + "NotebookAdd", + "NotebookArrowCurveDown", + "NotebookError", + "NotebookEye", + "NotebookLightning", + "NotebookQuestionMark", + "NotebookSection", + "NotebookSectionArrowRight", + "NotebookSubsection", + "NotebookSync", + "Notepad", + "NotepadEdit", + "NotepadPerson", + "NumberCircle1", + "NumberCircle2", + "NumberCircle3", + "NumberCircle4", + "NumberCircle5", + "NumberRow", + "NumberSymbol", + "NumberSymbolDismiss", + "NumberSymbolSquare", + "Open", + "OpenFolder", + "OpenOff", + "Options", + "Organization", + "OrganizationHorizontal", + "Orientation", + "Oval", + "Oven", + "PaddingDown", + "PaddingLeft", + "PaddingRight", + "PaddingTop", + "PageFit", + "PaintBrush", + "PaintBrushArrowDown", + "PaintBrushArrowUp", + "PaintBucket", + "Pair", + "PanelBottom", + "PanelBottomContract", + "PanelBottomExpand", + "PanelLeft", + "PanelLeftAdd", + "PanelLeftContract", + "PanelLeftExpand", + "PanelLeftFocusRight", + "PanelLeftHeader", + "PanelLeftHeaderAdd", + "PanelLeftHeaderKey", + "PanelLeftKey", + "PanelLeftText", + "PanelLeftTextAdd", + "PanelLeftTextDismiss", + "PanelRight", + "PanelRightAdd", + "PanelRightContract", + "PanelRightCursor", + "PanelRightExpand", + "PanelSeparateWindow", + "PanelTopContract", + "PanelTopExpand", + "Password", + "Patch", + "Patient", + "Pause", + "PauseCircle", + "PauseOff", + "PauseSettings", + "Payment", + "Pen", + "PenDismiss", + "PenOff", + "PenProhibited", + "PenSparkle", + "Pentagon", + "People", + "PeopleAdd", + "PeopleAudience", + "PeopleCall", + "PeopleCheckmark", + "PeopleCommunity", + "PeopleCommunityAdd", + "PeopleEdit", + "PeopleError", + "PeopleList", + "PeopleLock", + "PeopleMoney", + "PeopleProhibited", + "PeopleQueue", + "PeopleSearch", + "PeopleSettings", + "PeopleStar", + "PeopleSwap", + "PeopleSync", + "PeopleTeam", + "PeopleTeamAdd", + "PeopleTeamDelete", + "PeopleTeamToolbox", + "PeopleToolbox", + "Person", + "Person5", + "Person6", + "PersonAccounts", + "PersonAdd", + "PersonAlert", + "PersonArrowBack", + "PersonArrowLeft", + "PersonArrowRight", + "PersonAvailable", + "PersonBoard", + "PersonCall", + "PersonChat", + "PersonCircle", + "PersonClock", + "PersonDelete", + "PersonDesktop", + "PersonEdit", + "PersonFeedback", + "PersonHeart", + "PersonInfo", + "PersonKey", + "PersonLightbulb", + "PersonLightning", + "PersonLink", + "PersonLock", + "PersonMail", + "PersonMoney", + "PersonNote", + "PersonPill", + "PersonProhibited", + "PersonQuestionMark", + "PersonRibbon", + "PersonRunning", + "PersonSearch", + "PersonSettings", + "PersonSquare", + "PersonStar", + "PersonStarburst", + "PersonSubtract", + "PersonSupport", + "PersonSwap", + "PersonSync", + "PersonTag", + "PersonVoice", + "PersonWalking", + "PersonWrench", + "Phone", + "PhoneAdd", + "PhoneArrowRight", + "PhoneChat", + "PhoneCheckmark", + "PhoneDesktop", + "PhoneDesktopAdd", + "PhoneDismiss", + "PhoneEdit", + "PhoneEraser", + "PhoneKey", + "PhoneLaptop", + "PhoneLinkSetup", + "PhoneLock", + "PhonePageHeader", + "PhonePagination", + "PhoneScreenTime", + "PhoneShake", + "PhoneSpanIn", + "PhoneSpanOut", + "PhoneSpeaker", + "PhoneStatusBar", + "PhoneTablet", + "PhoneUpdate", + "PhoneUpdateCheckmark", + "PhoneVerticalScroll", + "PhoneVibrate", + "PhotoFilter", + "Pi", + "PictureInPicture", + "PictureInPictureEnter", + "PictureInPictureExit", + "Pill", + "Pin", + "PinOff", + "Pipeline", + "PipelineAdd", + "PipelineArrowCurveDown", + "PipelinePlay", + "Pivot", + "PlantGrass", + "PlantRagweed", + "Play", + "PlayCircle", + "PlayCircleHint", + "PlaySettings", + "PlayingCards", + "PlugConnected", + "PlugConnectedAdd", + "PlugConnectedCheckmark", + "PlugConnectedSettings", + "PlugDisconnected", + "PointScan", + "Poll", + "PollHorizontal", + "PortHdmi", + "PortMicroUsb", + "PortUsbA", + "PortUsbC", + "PositionBackward", + "PositionForward", + "PositionToBack", + "PositionToFront", + "Power", + "Predictions", + "Premium", + "PremiumPerson", + "PresenceAvailable", + "PresenceAway", + "PresenceBusy", + "PresenceDnd", + "Presenter", + "PresenterOff", + "PreviewLink", + "Previous", + "PreviousFrame", + "Print", + "PrintAdd", + "Production", + "ProductionCheckmark", + "Prohibited", + "ProhibitedMultiple", + "ProhibitedNote", + "ProjectionScreen", + "ProjectionScreenDismiss", + "ProtocolHandler", + "Pulse", + "PulseSquare", + "PuzzleCube", + "PuzzleCubePiece", + "PuzzlePiece", + "PuzzlePieceShield", + "QrCode", + "Question", + "QuestionCircle", + "QuizNew", + "Radar", + "RadarCheckmark", + "RadarRectangleMultiple", + "RadioButton", + "Ram", + "RatingMature", + "RatioOneToOne", + "ReOrder", + "ReOrderDotsHorizontal", + "ReOrderDotsVertical", + "ReadAloud", + "ReadingList", + "ReadingListAdd", + "ReadingModeMobile", + "RealEstate", + "Receipt", + "ReceiptAdd", + "ReceiptBag", + "ReceiptCube", + "ReceiptMoney", + "ReceiptPlay", + "ReceiptSearch", + "ReceiptSparkles", + "Record", + "RecordStop", + "RectangleLandscape", + "RectangleLandscapeHintCopy", + "RectanglePortraitLocationTarget", + "Recycle", + "RemixAdd", + "Remote", + "Rename", + "Reorder", + "Replay", + "Resize", + "ResizeImage", + "ResizeLarge", + "ResizeSmall", + "ResizeTable", + "ResizeVideo", + "Reward", + "Rewind", + "Rhombus", + "Ribbon", + "RibbonAdd", + "RibbonOff", + "RibbonStar", + "RoadCone", + "Rocket", + "RotateLeft", + "RotateRight", + "Router", + "RowTriple", + "Rss", + "Ruler", + "Run", + "Sanitize", + "Save", + "SaveArrowRight", + "SaveCopy", + "SaveEdit", + "SaveImage", + "SaveMultiple", + "SaveSearch", + "SaveSync", + "Savings", + "ScaleFill", + "ScaleFit", + "Scales", + "Scan", + "ScanCamera", + "ScanDash", + "ScanObject", + "ScanTable", + "ScanText", + "ScanThumbUp", + "ScanThumbUpOff", + "ScanType", + "ScanTypeCheckmark", + "ScanTypeOff", + "Scratchpad", + "ScreenCut", + "ScreenPerson", + "ScreenSearch", + "Screenshot", + "Script", + "Search", + "SearchInfo", + "SearchSettings", + "SearchShield", + "SearchSquare", + "SearchVisual", + "SelectAllOff", + "SelectAllOn", + "SelectObject", + "SelectObjectSkew", + "SelectObjectSkewDismiss", + "SelectObjectSkewEdit", + "Send", + "SendBeaker", + "SendClock", + "SendCopy", + "SerialPort", + "Server", + "ServerMultiple", + "ServerPlay", + "ServiceBell", + "Settings", + "SettingsChat", + "SettingsCogMultiple", + "ShapeExclude", + "ShapeIntersect", + "ShapeSubtract", + "ShapeUnion", + "Shapes", + "Share", + "ShareAndroid", + "ShareCloseTray", + "ShareIos", + "ShareScreenPerson", + "ShareScreenPersonOverlay", + "ShareScreenPersonOverlayInside", + "ShareScreenPersonP", + "ShareScreenStart", + "ShareScreenStop", + "Shield", + "ShieldAdd", + "ShieldBadge", + "ShieldCheckmark", + "ShieldDismiss", + "ShieldDismissShield", + "ShieldError", + "ShieldGlobe", + "ShieldKeyhole", + "ShieldLock", + "ShieldPerson", + "ShieldPersonAdd", + "ShieldProhibited", + "ShieldQuestion", + "ShieldTask", + "Shifts", + "Shifts30Minutes", + "ShiftsActivity", + "ShiftsAdd", + "ShiftsAvailability", + "ShiftsCheckmark", + "ShiftsDay", + "ShiftsOpen", + "ShiftsProhibited", + "ShiftsQuestionMark", + "ShiftsTeam", + "ShoppingBag", + "ShoppingBagArrowLeft", + "ShoppingBagDismiss", + "ShoppingBagPause", + "ShoppingBagPercent", + "ShoppingBagPlay", + "ShoppingBagTag", + "Shortpick", + "Showerhead", + "SidebarSearchLtr", + "SidebarSearchRtl", + "SignOut", + "Signature", + "Sim", + "SkipBack10", + "SkipForward10", + "SkipForward30", + "SkipForwardTab", + "SlashForward", + "Sleep", + "SlideAdd", + "SlideArrowRight", + "SlideEraser", + "SlideGrid", + "SlideHide", + "SlideLayout", + "SlideLink", + "SlideMicrophone", + "SlideMultiple", + "SlideMultipleArrowRight", + "SlideMultipleSearch", + "SlideRecord", + "SlideSearch", + "SlideSettings", + "SlideSize", + "SlideText", + "SlideTextMultiple", + "SlideTextPerson", + "SlideTextSparkle", + "SlideTransition", + "Smartwatch", + "SmartwatchDot", + "Snooze", + "SoundSource", + "SoundWaveCircle", + "Space3d", + "Spacebar", + "Sparkle", + "SparkleCircle", + "Speaker0", + "Speaker1", + "Speaker2", + "SpeakerBluetooth", + "SpeakerEdit", + "SpeakerMute", + "SpeakerOff", + "SpeakerSettings", + "SpeakerUsb", + "SpinnerIos", + "SplitHint", + "SplitHorizontal", + "SplitVertical", + "Sport", + "SportAmericanFootball", + "SportBaseball", + "SportBasketball", + "SportHockey", + "SportSoccer", + "Square", + "SquareAdd", + "SquareArrowForward", + "SquareDismiss", + "SquareEraser", + "SquareHint", + "SquareHintApps", + "SquareHintArrowBack", + "SquareHintSparkles", + "SquareMultiple", + "SquareShadow", + "SquaresNested", + "Stack", + "StackAdd", + "StackArrowForward", + "StackStar", + "StackVertical", + "Star", + "StarAdd", + "StarArrowBack", + "StarArrowRightEnd", + "StarArrowRightStart", + "StarCheckmark", + "StarDismiss", + "StarEdit", + "StarEmphasis", + "StarHalf", + "StarLineHorizontal3", + "StarOff", + "StarOneQuarter", + "StarProhibited", + "StarSettings", + "StarThreeQuarter", + "Status", + "Steps", + "Stethoscope", + "Sticker", + "StickerAdd", + "Stop", + "Storage", + "StoreMicrosoft", + "Stream", + "StreamInput", + "StreamInputOutput", + "StreamOutput", + "StyleGuide", + "SubGrid", + "Subtitles", + "Subtract", + "SubtractCircle", + "SubtractCircleArrowBack", + "SubtractCircleArrowForward", + "SubtractSquare", + "SubtractSquareMultiple", + "SurfaceEarbuds", + "SurfaceHub", + "SwimmingPool", + "SwipeDown", + "SwipeRight", + "SwipeUp", + "Symbols", + "SyncOff", + "Syringe", + "System", + "Tab", + "TabAdd", + "TabArrowLeft", + "TabDesktop", + "TabDesktopArrowClockwise", + "TabDesktopArrowLeft", + "TabDesktopBottom", + "TabDesktopClock", + "TabDesktopCopy", + "TabDesktopImage", + "TabDesktopLink", + "TabDesktopMultiple", + "TabDesktopMultipleBottom", + "TabDesktopNewPage", + "TabInPrivate", + "TabInprivateAccount", + "TabProhibited", + "TabShieldDismiss", + "Table", + "TableAdd", + "TableArrowUp", + "TableBottomRow", + "TableCalculator", + "TableCellEdit", + "TableCellsMerge", + "TableCellsSplit", + "TableChecker", + "TableColumnTopBottom", + "TableCopy", + "TableDeleteColumn", + "TableDeleteRow", + "TableDismiss", + "TableEdit", + "TableFreezeColumn", + "TableFreezeColumnAndRow", + "TableFreezeRow", + "TableImage", + "TableInsertColumn", + "TableInsertRow", + "TableLightning", + "TableLink", + "TableLock", + "TableMoveAbove", + "TableMoveBelow", + "TableMoveLeft", + "TableMoveRight", + "TableMultiple", + "TableOffset", + "TableOffsetAdd", + "TableOffsetLessThanOrEqualTo", + "TableOffsetSettings", + "TableResizeColumn", + "TableResizeRow", + "TableSearch", + "TableSettings", + "TableSimple", + "TableSimpleCheckmark", + "TableSimpleExclude", + "TableSimpleInclude", + "TableSimpleMultiple", + "TableSplit", + "TableStackAbove", + "TableStackBelow", + "TableStackLeft", + "TableStackRight", + "TableSwitch", + "Tablet", + "TabletLaptop", + "TabletSpeaker", + "Tabs", + "Tag", + "TagCircle", + "TagDismiss", + "TagError", + "TagLock", + "TagLockAccent", + "TagMultiple", + "TagOff", + "TagQuestionMark", + "TagReset", + "TagSearch", + "TapDouble", + "TapSingle", + "Target", + "TargetArrow", + "TargetEdit", + "TaskListAdd", + "TaskListLtr", + "TaskListRtl", + "TaskListSquareAdd", + "TaskListSquareDatabase", + "TaskListSquareLtr", + "TaskListSquarePerson", + "TaskListSquareRtl", + "TaskListSquareSettings", + "TasksApp", + "Teddy", + "Temperature", + "Tent", + "TetrisApp", + "TextAdd", + "TextAddSpaceAfter", + "TextAddSpaceBefore", + "TextAddT", + "TextAlignCenter", + "TextAlignCenterRotate270", + "TextAlignCenterRotate90", + "TextAlignDistributed", + "TextAlignDistributedEvenly", + "TextAlignDistributedVertical", + "TextAlignJustify", + "TextAlignJustifyLow", + "TextAlignJustifyLow90", + "TextAlignJustifyLowRotate270", + "TextAlignJustifyLowRotate90", + "TextAlignJustifyRotate270", + "TextAlignJustifyRotate90", + "TextAlignLeft", + "TextAlignLeftRotate270", + "TextAlignLeftRotate90", + "TextAlignRight", + "TextAlignRightRotate270", + "TextAlignRightRotate90", + "TextAsterisk", + "TextBaseline", + "TextBold", + "TextBoxSettings", + "TextBulletList", + "TextBulletList90", + "TextBulletListAdd", + "TextBulletListCheckmark", + "TextBulletListDismiss", + "TextBulletListLtr", + "TextBulletListLtr90", + "TextBulletListRtl", + "TextBulletListRtl90", + "TextBulletListSquare", + "TextBulletListSquareClock", + "TextBulletListSquareEdit", + "TextBulletListSquarePerson", + "TextBulletListSquareSearch", + "TextBulletListSquareSettings", + "TextBulletListSquareShield", + "TextBulletListSquareSparkle", + "TextBulletListSquareToolbox", + "TextBulletListSquareWarning", + "TextBulletListTree", + "TextCaseLowercase", + "TextCaseTitle", + "TextCaseUppercase", + "TextChangeCase", + "TextClearFormatting", + "TextCollapse", + "TextColor", + "TextColorAccent", + "TextColumnOne", + "TextColumnOneNarrow", + "TextColumnOneSemiNarrow", + "TextColumnOneWide", + "TextColumnOneWideLightning", + "TextColumnThree", + "TextColumnTwo", + "TextColumnTwoLeft", + "TextColumnTwoRight", + "TextColumnWide", + "TextContinuous", + "TextDensity", + "TextDescription", + "TextDescriptionLtr", + "TextDescriptionRtl", + "TextDirectionHorizontalLeft", + "TextDirectionHorizontalLtr", + "TextDirectionHorizontalRight", + "TextDirectionHorizontalRtl", + "TextDirectionRotate270Right", + "TextDirectionRotate315Right", + "TextDirectionRotate45Right", + "TextDirectionRotate90Left", + "TextDirectionRotate90Ltr", + "TextDirectionRotate90Right", + "TextDirectionRotate90Rtl", + "TextDirectionVertical", + "TextEditStyle", + "TextEffects", + "TextExpand", + "TextField", + "TextFirstLine", + "TextFont", + "TextFontInfo", + "TextFontSize", + "TextFootnote", + "TextGrammarArrowLeft", + "TextGrammarArrowRight", + "TextGrammarCheckmark", + "TextGrammarDismiss", + "TextGrammarError", + "TextGrammarSettings", + "TextGrammarWand", + "TextHanging", + "TextHeader1", + "TextHeader2", + "TextHeader3", + "TextIndentDecrease", + "TextIndentDecreaseLtr", + "TextIndentDecreaseLtr90", + "TextIndentDecreaseLtrRotate270", + "TextIndentDecreaseRotate270", + "TextIndentDecreaseRotate90", + "TextIndentDecreaseRtl", + "TextIndentDecreaseRtl90", + "TextIndentDecreaseRtlRotate270", + "TextIndentIncrease", + "TextIndentIncreaseLtr", + "TextIndentIncreaseLtr90", + "TextIndentIncreaseLtrRotate270", + "TextIndentIncreaseRotate270", + "TextIndentIncreaseRotate90", + "TextIndentIncreaseRtl", + "TextIndentIncreaseRtl90", + "TextIndentIncreaseRtlRotate270", + "TextItalic", + "TextLineSpacing", + "TextMore", + "TextNumberFormat", + "TextNumberListLtr", + "TextNumberListLtr90", + "TextNumberListLtrRotate270", + "TextNumberListRotate270", + "TextNumberListRotate90", + "TextNumberListRtl", + "TextNumberListRtl90", + "TextNumberListRtlRotate270", + "TextParagraph", + "TextParagraphDirection", + "TextParagraphDirectionLeft", + "TextParagraphDirectionRight", + "TextPeriodAsterisk", + "TextPositionBehind", + "TextPositionFront", + "TextPositionLine", + "TextPositionSquare", + "TextPositionSquareLeft", + "TextPositionSquareRight", + "TextPositionThrough", + "TextPositionTight", + "TextPositionTopBottom", + "TextProofingTools", + "TextQuote", + "TextSortAscending", + "TextSortDescending", + "TextStrikethrough", + "TextSubscript", + "TextSuperscript", + "TextT", + "TextUnderline", + "TextUnderlineCharacterU", + "TextUnderlineDouble", + "TextWholeWord", + "TextWordCount", + "TextWrap", + "TextWrapOff", + "Textbox", + "TextboxAlignBottom", + "TextboxAlignBottomCenter", + "TextboxAlignBottomLeft", + "TextboxAlignBottomRight", + "TextboxAlignBottomRotate90", + "TextboxAlignCenter", + "TextboxAlignMiddle", + "TextboxAlignMiddleLeft", + "TextboxAlignMiddleRight", + "TextboxAlignMiddleRotate90", + "TextboxAlignTop", + "TextboxAlignTopCenter", + "TextboxAlignTopLeft", + "TextboxAlignTopRight", + "TextboxAlignTopRotate90", + "TextboxMore", + "TextboxRotate90", + "TextboxSettings", + "Thinking", + "ThumbDislike", + "ThumbLike", + "ThumbLikeDislike", + "TicketDiagonal", + "TicketHorizontal", + "TimeAndWeather", + "TimePicker", + "Timeline", + "Timer10", + "Timer2", + "Timer", + "Timer3", + "TimerOff", + "ToggleLeft", + "ToggleMultiple", + "ToggleRight", + "Toolbox", + "TooltipQuote", + "TopSpeed", + "Translate", + "TranslateAuto", + "TranslateOff", + "Transmission", + "TrayItemAdd", + "TrayItemRemove", + "TreeDeciduous", + "TreeEvergreen", + "Triangle", + "TriangleDown", + "TriangleLeft", + "TriangleRight", + "TriangleUp", + "Trophy", + "TrophyLock", + "TrophyOff", + "Tv", + "TvArrowRight", + "TvUsb", + "Umbrella", + "UninstallApp", + "UsbPlug", + "UsbStick", + "Vault", + "VehicleBicycle", + "VehicleBus", + "VehicleCab", + "VehicleCableCar", + "VehicleCar", + "VehicleCarCollision", + "VehicleCarParking", + "VehicleCarProfile", + "VehicleCarProfileLtr", + "VehicleCarProfileLtrClock", + "VehicleCarProfileRtl", + "VehicleShip", + "VehicleSubway", + "VehicleTruck", + "VehicleTruckBag", + "VehicleTruckCube", + "VehicleTruckProfile", + "Video", + "Video360", + "Video360Off", + "VideoAdd", + "VideoBackgroundEffect", + "VideoBackgroundEffectHorizontal", + "VideoChat", + "VideoClip", + "VideoClipMultiple", + "VideoClipOff", + "VideoOff", + "VideoPerson", + "VideoPersonCall", + "VideoPersonClock", + "VideoPersonOff", + "VideoPersonSparkle", + "VideoPersonSparkleOff", + "VideoPersonStar", + "VideoPersonStarOff", + "VideoPlayPause", + "VideoProhibited", + "VideoRecording", + "VideoSecurity", + "VideoSwitch", + "VideoSync", + "ViewDesktop", + "ViewDesktopMobile", + "VirtualNetwork", + "VirtualNetworkToolbox", + "Voicemail", + "VoicemailArrowBack", + "VoicemailArrowForward", + "VoicemailArrowSubtract", + "VoicemailShield", + "VoicemailSubtract", + "Vote", + "WalkieTalkie", + "Wallet", + "WalletCreditCard", + "Wallpaper", + "Wand", + "Warning", + "WarningShield", + "Washer", + "Water", + "WeatherBlowingSnow", + "WeatherCloudy", + "WeatherDrizzle", + "WeatherDuststorm", + "WeatherFog", + "WeatherHailDay", + "WeatherHailNight", + "WeatherHaze", + "WeatherMoon", + "WeatherMoonOff", + "WeatherPartlyCloudyDay", + "WeatherPartlyCloudyNight", + "WeatherRain", + "WeatherRainShowersDay", + "WeatherRainShowersNight", + "WeatherRainSnow", + "WeatherSnow", + "WeatherSnowShowerDay", + "WeatherSnowShowerNight", + "WeatherSnowflake", + "WeatherSqualls", + "WeatherSunny", + "WeatherSunnyHigh", + "WeatherSunnyLow", + "WeatherThunderstorm", + "WebAsset", + "Whiteboard", + "Wifi1", + "Wifi2", + "Wifi3", + "Wifi4", + "WifiLock", + "WifiOff", + "WifiSettings", + "WifiWarning", + "Window", + "WindowAd", + "WindowAdOff", + "WindowAdPerson", + "WindowApps", + "WindowArrowUp", + "WindowBulletList", + "WindowBulletListAdd", + "WindowConsole", + "WindowDatabase", + "WindowDevEdit", + "WindowDevTools", + "WindowEdit", + "WindowHeaderHorizontal", + "WindowHeaderHorizontalOff", + "WindowHeaderVertical", + "WindowInprivate", + "WindowInprivateAccount", + "WindowLocationTarget", + "WindowMultiple", + "WindowMultipleSwap", + "WindowNew", + "WindowPlay", + "WindowSettings", + "WindowShield", + "WindowText", + "WindowWrench", + "Wrench", + "WrenchScrewdriver", + "XboxConsole", + "XboxController", + "XboxControllerError", + "Xray", + "ZoomFit", + "ZoomIn", + "ZoomOut" + ] + } + } + Component { + file: "definitions.h" + name: "RibbonIconsRegularEnum" + accessSemantics: "none" + exports: ["RibbonUI/RibbonIcons 1.0"] + isCreatable: false + exportMetaObjectRevisions: [256] + Enum { + name: "RibbonIcons_Regular" + values: [ + "AccessTime", + "Accessibility", + "AccessibilityCheckmark", + "Add", + "AddCircle", + "AddSquare", + "AddSquareMultiple", + "AddSubtractCircle", + "Airplane", + "AirplaneLanding", + "AirplaneTakeOff", + "Album", + "AlbumAdd", + "Alert", + "AlertBadge", + "AlertOff", + "AlertOn", + "AlertSnooze", + "AlertUrgent", + "AlignBottom", + "AlignCenterHorizontal", + "AlignCenterVertical", + "AlignEndHorizontal", + "AlignEndVertical", + "AlignLeft", + "AlignRight", + "AlignSpaceAroundHorizontal", + "AlignSpaceAroundVertical", + "AlignSpaceBetweenHorizontal", + "AlignSpaceBetweenVertical", + "AlignSpaceEvenlyHorizontal", + "AlignSpaceEvenlyVertical", + "AlignSpaceFitVertical", + "AlignStartHorizontal", + "AlignStartVertical", + "AlignStraighten", + "AlignStretchHorizontal", + "AlignStretchVertical", + "AlignTop", + "AnimalCat", + "AnimalDog", + "AnimalRabbit", + "AnimalRabbitOff", + "AnimalTurtle", + "AppFolder", + "AppGeneric", + "AppRecent", + "AppTitle", + "ApprovalsApp", + "Apps", + "AppsAddIn", + "AppsList", + "AppsListDetail", + "Archive", + "ArchiveArrowBack", + "ArchiveMultiple", + "ArchiveSettings", + "ArrowAutofitContent", + "ArrowAutofitDown", + "ArrowAutofitHeight", + "ArrowAutofitHeightDotted", + "ArrowAutofitHeightIn", + "ArrowAutofitUp", + "ArrowAutofitWidth", + "ArrowAutofitWidthDotted", + "ArrowBetweenDown", + "ArrowBetweenUp", + "ArrowBidirectionalLeftRight", + "ArrowBidirectionalUpDown", + "ArrowBounce", + "ArrowCircleDown", + "ArrowCircleDownDouble", + "ArrowCircleDownRight", + "ArrowCircleDownSplit", + "ArrowCircleDownUp", + "ArrowCircleLeft", + "ArrowCircleRight", + "ArrowCircleUp", + "ArrowCircleUpLeft", + "ArrowCircleUpRight", + "ArrowClockwise", + "ArrowClockwiseDashes", + "ArrowCollapseAll", + "ArrowCounterclockwise", + "ArrowCounterclockwiseDashes", + "ArrowCurveDownLeft", + "ArrowCurveDownRight", + "ArrowCurveUpLeft", + "ArrowCurveUpRight", + "ArrowDown", + "ArrowDownLeft", + "ArrowDownload", + "ArrowEject", + "ArrowEnter", + "ArrowEnterLeft", + "ArrowEnterUp", + "ArrowExit", + "ArrowExpand", + "ArrowExport", + "ArrowExportLtr", + "ArrowExportRtl", + "ArrowExportUp", + "ArrowFit", + "ArrowFitIn", + "ArrowFlowDiagonalUpRight", + "ArrowFlowUpRight", + "ArrowFlowUpRightRectangleMultiple", + "ArrowForward", + "ArrowForwardDownLightning", + "ArrowForwardDownPerson", + "ArrowHookDownLeft", + "ArrowHookDownRight", + "ArrowHookUpLeft", + "ArrowHookUpRight", + "ArrowImport", + "ArrowJoin", + "ArrowLeft", + "ArrowMaximize", + "ArrowMaximizeVertical", + "ArrowMinimize", + "ArrowMinimizeVertical", + "ArrowMove", + "ArrowMoveInward", + "ArrowNext", + "ArrowOutlineDownLeft", + "ArrowOutlineUpRight", + "ArrowParagraph", + "ArrowPrevious", + "ArrowRedo", + "ArrowRepeat1", + "ArrowRepeatAll", + "ArrowRepeatAllOff", + "ArrowReply", + "ArrowReplyAll", + "ArrowReplyDown", + "ArrowReset", + "ArrowRight", + "ArrowRotateClockwise", + "ArrowRotateCounterclockwise", + "ArrowRouting", + "ArrowRoutingRectangleMultiple", + "ArrowShuffle", + "ArrowShuffleOff", + "ArrowSort", + "ArrowSortDown", + "ArrowSortDownLines", + "ArrowSortUp", + "ArrowSplit", + "ArrowSprint", + "ArrowSquareDown", + "ArrowSquareUpRight", + "ArrowStepBack", + "ArrowStepIn", + "ArrowStepInDiagonalDownLeft", + "ArrowStepInLeft", + "ArrowStepInRight", + "ArrowStepOut", + "ArrowStepOver", + "ArrowSwap", + "ArrowSync", + "ArrowSyncCheckmark", + "ArrowSyncCircle", + "ArrowSyncDismiss", + "ArrowSyncOff", + "ArrowTrending", + "ArrowTrendingCheckmark", + "ArrowTrendingDown", + "ArrowTrendingLines", + "ArrowTrendingSettings", + "ArrowTrendingSparkle", + "ArrowTrendingText", + "ArrowTrendingWrench", + "ArrowTurnBidirectionalDownRight", + "ArrowTurnDownLeft", + "ArrowTurnDownRight", + "ArrowTurnDownUp", + "ArrowTurnLeftDown", + "ArrowTurnLeftRight", + "ArrowTurnLeftUp", + "ArrowTurnRight", + "ArrowTurnRightDown", + "ArrowTurnRightLeft", + "ArrowTurnRightUp", + "ArrowTurnUpDown", + "ArrowTurnUpLeft", + "ArrowUndo", + "ArrowUp", + "ArrowUpLeft", + "ArrowUpRight", + "ArrowUpload", + "ArrowWrap", + "ArrowWrapOff", + "ArrowsBidirectional", + "Attach", + "AttachArrowRight", + "AttachText", + "AutoFitHeight", + "AutoFitWidth", + "Autocorrect", + "Autosum", + "Backpack", + "BackpackAdd", + "Backspace", + "Badge", + "Balloon", + "BarcodeScanner", + "Battery0", + "Battery1", + "Battery10", + "Battery2", + "Battery3", + "Battery4", + "Battery5", + "Battery6", + "Battery7", + "Battery8", + "Battery9", + "BatteryCharge", + "BatteryCheckmark", + "BatterySaver", + "BatteryWarning", + "Beach", + "Beaker", + "BeakerEdit", + "BeakerOff", + "BeakerSettings", + "Bed", + "BezierCurveSquare", + "BinFull", + "BinRecycle", + "BinRecycleFull", + "BinderTriangle", + "Bluetooth", + "BluetoothConnected", + "BluetoothDisabled", + "BluetoothSearching", + "Blur", + "Board", + "BoardGames", + "BoardHeart", + "BoardSplit", + "Book", + "BookAdd", + "BookArrowClockwise", + "BookClock", + "BookCoins", + "BookCompass", + "BookContacts", + "BookDatabase", + "BookDismiss", + "BookExclamationMark", + "BookGlobe", + "BookInformation", + "BookLetter", + "BookNumber", + "BookOpen", + "BookOpenGlobe", + "BookOpenMicrophone", + "BookPulse", + "BookQuestionMark", + "BookQuestionMarkRtl", + "BookSearch", + "BookStar", + "BookTemplate", + "BookTheta", + "BookToolbox", + "Bookmark", + "BookmarkAdd", + "BookmarkMultiple", + "BookmarkOff", + "BookmarkSearch", + "BorderAll", + "BorderBottom", + "BorderBottomDouble", + "BorderBottomThick", + "BorderLeft", + "BorderLeftRight", + "BorderNone", + "BorderOutside", + "BorderOutsideThick", + "BorderRight", + "BorderTop", + "BorderTopBottom", + "BorderTopBottomDouble", + "BorderTopBottomThick", + "Bot", + "BotAdd", + "BotSparkle", + "BowTie", + "BowlChopsticks", + "BowlSalad", + "Box", + "BoxArrowLeft", + "BoxArrowUp", + "BoxCheckmark", + "BoxDismiss", + "BoxEdit", + "BoxMultiple", + "BoxMultipleArrowLeft", + "BoxMultipleArrowRight", + "BoxMultipleCheckmark", + "BoxMultipleSearch", + "BoxSearch", + "BoxToolbox", + "Braces", + "BracesVariable", + "BrainCircuit", + "Branch", + "BranchCompare", + "BranchFork", + "BranchForkHint", + "BranchForkLink", + "BranchRequest", + "BreakoutRoom", + "Briefcase", + "BriefcaseMedical", + "BriefcaseOff", + "BriefcaseSearch", + "BrightnessHigh", + "BrightnessLow", + "BroadActivityFeed", + "Broom", + "BubbleMultiple", + "Bug", + "BugArrowCounterclockwise", + "BugProhibited", + "Building", + "BuildingBank", + "BuildingBankLink", + "BuildingBankToolbox", + "BuildingDesktop", + "BuildingFactory", + "BuildingGovernment", + "BuildingHome", + "BuildingLighthouse", + "BuildingMosque", + "BuildingMultiple", + "BuildingPeople", + "BuildingRetail", + "BuildingRetailMoney", + "BuildingRetailMore", + "BuildingRetailShield", + "BuildingRetailToolbox", + "BuildingShop", + "BuildingSkyscraper", + "BuildingTownhouse", + "Button", + "Calculator", + "CalculatorArrowClockwise", + "CalculatorMultiple", + "Calendar", + "Calendar3Day", + "CalendarAdd", + "CalendarAgenda", + "CalendarArrowCounterclockwise", + "CalendarArrowDown", + "CalendarArrowRight", + "CalendarAssistant", + "CalendarCancel", + "CalendarChat", + "CalendarCheckmark", + "CalendarClock", + "CalendarDataBar", + "CalendarDate", + "CalendarDay", + "CalendarEdit", + "CalendarEmpty", + "CalendarError", + "CalendarEye", + "CalendarInfo", + "CalendarLock", + "CalendarLtr", + "CalendarMail", + "CalendarMention", + "CalendarMonth", + "CalendarMultiple", + "CalendarPattern", + "CalendarPerson", + "CalendarPhone", + "CalendarPlay", + "CalendarQuestionMark", + "CalendarReply", + "CalendarRtl", + "CalendarSearch", + "CalendarSettings", + "CalendarShield", + "CalendarStar", + "CalendarSync", + "CalendarToday", + "CalendarToolbox", + "CalendarWeekNumbers", + "CalendarWeekStart", + "CalendarWorkWeek", + "Call", + "CallAdd", + "CallCheckmark", + "CallConnecting", + "CallDismiss", + "CallEnd", + "CallExclamation", + "CallForward", + "CallInbound", + "CallMissed", + "CallOutbound", + "CallPark", + "CallPause", + "CallProhibited", + "CallTransfer", + "CallWarning", + "CalligraphyPen", + "CalligraphyPenCheckmark", + "CalligraphyPenError", + "CalligraphyPenQuestionMark", + "Camera", + "CameraAdd", + "CameraDome", + "CameraEdit", + "CameraOff", + "CameraSparkles", + "CameraSwitch", + "CardUi", + "CaretDown", + "CaretDownRight", + "CaretLeft", + "CaretRight", + "CaretUp", + "Cart", + "Cast", + "CastMultiple", + "CatchUp", + "Cellular3g", + "Cellular4g", + "Cellular5g", + "CellularData1", + "CellularData2", + "CellularData3", + "CellularData4", + "CellularData5", + "CellularOff", + "CellularWarning", + "CenterHorizontal", + "CenterVertical", + "Certificate", + "Channel", + "ChannelAdd", + "ChannelAlert", + "ChannelArrowLeft", + "ChannelDismiss", + "ChannelShare", + "ChannelSubtract", + "ChartMultiple", + "ChartPerson", + "Chat", + "ChatAdd", + "ChatArrowBack", + "ChatArrowDoubleBack", + "ChatBubblesQuestion", + "ChatCursor", + "ChatDismiss", + "ChatEmpty", + "ChatHelp", + "ChatMail", + "ChatMultiple", + "ChatMultipleHeart", + "ChatOff", + "ChatSettings", + "ChatSparkle", + "ChatVideo", + "ChatWarning", + "Check", + "Checkbox1", + "Checkbox2", + "CheckboxArrowRight", + "CheckboxChecked", + "CheckboxCheckedSync", + "CheckboxIndeterminate", + "CheckboxPerson", + "CheckboxUnchecked", + "CheckboxWarning", + "Checkmark", + "CheckmarkCircle", + "CheckmarkCircleSquare", + "CheckmarkLock", + "CheckmarkNote", + "CheckmarkSquare", + "CheckmarkStarburst", + "CheckmarkUnderlineCircle", + "Chess", + "ChevronCircleDown", + "ChevronCircleLeft", + "ChevronCircleRight", + "ChevronCircleUp", + "ChevronDoubleDown", + "ChevronDoubleLeft", + "ChevronDoubleRight", + "ChevronDoubleUp", + "ChevronDown", + "ChevronDownUp", + "ChevronLeft", + "ChevronRight", + "ChevronUp", + "ChevronUpDown", + "Circle", + "CircleEdit", + "CircleEraser", + "CircleHalfFill", + "CircleHint", + "CircleHintHalfVertical", + "CircleImage", + "CircleLine", + "CircleMultipleSubtractCheckmark", + "CircleOff", + "CircleSmall", + "City", + "Class", + "Classification", + "ClearFormatting", + "Clipboard", + "Clipboard3Day", + "ClipboardArrowRight", + "ClipboardBulletList", + "ClipboardBulletListLtr", + "ClipboardBulletListRtl", + "ClipboardCheckmark", + "ClipboardClock", + "ClipboardCode", + "ClipboardDataBar", + "ClipboardDay", + "ClipboardEdit", + "ClipboardError", + "ClipboardHeart", + "ClipboardImage", + "ClipboardLetter", + "ClipboardLink", + "ClipboardMonth", + "ClipboardMore", + "ClipboardNote", + "ClipboardPaste", + "ClipboardPulse", + "ClipboardSearch", + "ClipboardSettings", + "ClipboardTask", + "ClipboardTaskAdd", + "ClipboardTaskListLtr", + "ClipboardTaskListRtl", + "ClipboardTextEdit", + "ClipboardTextLtr", + "ClipboardTextRtl", + "Clock", + "ClockAlarm", + "ClockArrowDownload", + "ClockDismiss", + "ClockLock", + "ClockPause", + "ClockToolbox", + "ClosedCaption", + "ClosedCaptionOff", + "Cloud", + "CloudAdd", + "CloudArchive", + "CloudArrowDown", + "CloudArrowUp", + "CloudBidirectional", + "CloudCheckmark", + "CloudDatabase", + "CloudDesktop", + "CloudDismiss", + "CloudEdit", + "CloudError", + "CloudFlow", + "CloudLink", + "CloudOff", + "CloudSwap", + "CloudSync", + "CloudWords", + "Clover", + "Code", + "CodeBlock", + "CodeCircle", + "CodeText", + "CodeTextEdit", + "Collections", + "CollectionsAdd", + "Color", + "ColorBackground", + "ColorBackgroundAccent", + "ColorFill", + "ColorFillAccent", + "ColorLine", + "ColorLineAccent", + "Column", + "ColumnArrowRight", + "ColumnDoubleCompare", + "ColumnEdit", + "ColumnSingleCompare", + "ColumnTriple", + "ColumnTripleEdit", + "Comma", + "Comment", + "CommentAdd", + "CommentArrowLeft", + "CommentArrowRight", + "CommentCheckmark", + "CommentDismiss", + "CommentEdit", + "CommentError", + "CommentLightning", + "CommentLink", + "CommentMention", + "CommentMultiple", + "CommentMultipleCheckmark", + "CommentMultipleLink", + "CommentNote", + "CommentOff", + "Communication", + "CommunicationPerson", + "CompassNorthwest", + "Compose", + "ConferenceRoom", + "Connected", + "Connector", + "ContactCard", + "ContactCardGroup", + "ContactCardLink", + "ContactCardRibbon", + "ContentSettings", + "ContentView", + "ContentViewGallery", + "ContractDownLeft", + "ControlButton", + "ConvertRange", + "Cookies", + "Copy", + "CopyAdd", + "CopyArrowRight", + "CopySelect", + "Couch", + "CreditCardClock", + "CreditCardPerson", + "CreditCardToolbox", + "Crop", + "CropInterim", + "CropInterimOff", + "Crown", + "Cube", + "CubeAdd", + "CubeArrowCurveDown", + "CubeLink", + "CubeMultiple", + "CubeQuick", + "CubeRotate", + "CubeSync", + "CubeTree", + "CurrencyDollarEuro", + "CurrencyDollarRupee", + "Cursor", + "CursorClick", + "CursorHover", + "CursorHoverOff", + "CursorProhibited", + "Cut", + "DarkTheme", + "DataArea", + "DataBarHorizontal", + "DataBarVertical", + "DataBarVerticalAdd", + "DataBarVerticalStar", + "DataFunnel", + "DataHistogram", + "DataLine", + "DataPie", + "DataScatter", + "DataSunburst", + "DataTreemap", + "DataTrending", + "DataUsage", + "DataUsageEdit", + "DataUsageSettings", + "DataUsageToolbox", + "DataWaterfall", + "DataWhisker", + "Database", + "DatabaseArrowDown", + "DatabaseArrowRight", + "DatabaseArrowUp", + "DatabaseLightning", + "DatabaseLink", + "DatabaseMultiple", + "DatabasePerson", + "DatabasePlugConnected", + "DatabaseSearch", + "DatabaseSwitch", + "DatabaseWarning", + "DatabaseWindow", + "DecimalArrowLeft", + "DecimalArrowRight", + "Delete", + "DeleteArrowBack", + "DeleteDismiss", + "DeleteLines", + "DeleteOff", + "Dentist", + "DesignIdeas", + "Desk", + "Desktop", + "DesktopArrowDown", + "DesktopArrowRight", + "DesktopCheckmark", + "DesktopCursor", + "DesktopEdit", + "DesktopFlow", + "DesktopKeyboard", + "DesktopMac", + "DesktopPulse", + "DesktopSignal", + "DesktopSpeaker", + "DesktopSpeakerOff", + "DesktopSync", + "DesktopToolbox", + "DesktopTower", + "DeveloperBoard", + "DeveloperBoardLightning", + "DeveloperBoardLightningToolbox", + "DeveloperBoardSearch", + "DeviceEq", + "DeviceMeetingRoom", + "DeviceMeetingRoomRemote", + "Diagram", + "Dialpad", + "DialpadOff", + "Diamond", + "Directions", + "Dishwasher", + "Dismiss", + "DismissCircle", + "DismissSquare", + "DismissSquareMultiple", + "Diversity", + "DividerShort", + "DividerTall", + "Dock", + "DockRow", + "Doctor", + "Document100", + "Document", + "DocumentAdd", + "DocumentArrowDown", + "DocumentArrowLeft", + "DocumentArrowRight", + "DocumentArrowUp", + "DocumentBorder", + "DocumentBorderPrint", + "DocumentBriefcase", + "DocumentBulletList", + "DocumentBulletListArrowLeft", + "DocumentBulletListClock", + "DocumentBulletListCube", + "DocumentBulletListMultiple", + "DocumentBulletListOff", + "DocumentCatchUp", + "DocumentCheckmark", + "DocumentChevronDouble", + "DocumentCopy", + "DocumentCss", + "DocumentData", + "DocumentDataLink", + "DocumentDatabase", + "DocumentDismiss", + "DocumentEdit", + "DocumentEndnote", + "DocumentError", + "DocumentFit", + "DocumentFlowchart", + "DocumentFolder", + "DocumentFooter", + "DocumentFooterDismiss", + "DocumentHeader", + "DocumentHeaderArrowDown", + "DocumentHeaderDismiss", + "DocumentHeaderFooter", + "DocumentHeart", + "DocumentHeartPulse", + "DocumentImage", + "DocumentJava", + "DocumentJavascript", + "DocumentKey", + "DocumentLandscape", + "DocumentLandscapeData", + "DocumentLandscapeSplit", + "DocumentLandscapeSplitHint", + "DocumentLink", + "DocumentLock", + "DocumentMargins", + "DocumentMention", + "DocumentMultiple", + "DocumentMultiplePercent", + "DocumentMultipleProhibited", + "DocumentMultipleSync", + "DocumentOnePage", + "DocumentOnePageAdd", + "DocumentOnePageColumns", + "DocumentOnePageLink", + "DocumentOnePageMultiple", + "DocumentOnePageSparkle", + "DocumentPageBottomCenter", + "DocumentPageBottomLeft", + "DocumentPageBottomRight", + "DocumentPageBreak", + "DocumentPageNumber", + "DocumentPageTopCenter", + "DocumentPageTopLeft", + "DocumentPageTopRight", + "DocumentPdf", + "DocumentPercent", + "DocumentPerson", + "DocumentPill", + "DocumentPrint", + "DocumentProhibited", + "DocumentQuestionMark", + "DocumentQueue", + "DocumentQueueAdd", + "DocumentQueueMultiple", + "DocumentRibbon", + "DocumentSass", + "DocumentSave", + "DocumentSearch", + "DocumentSettings", + "DocumentSplitHint", + "DocumentSplitHintOff", + "DocumentSync", + "DocumentTable", + "DocumentTableArrowRight", + "DocumentTableCheckmark", + "DocumentTableCube", + "DocumentTableSearch", + "DocumentTableTruck", + "DocumentText", + "DocumentTextClock", + "DocumentTextExtract", + "DocumentTextLink", + "DocumentTextToolbox", + "DocumentToolbox", + "DocumentWidth", + "DocumentYml", + "Door", + "DoorArrowLeft", + "DoorArrowRight", + "DoorTag", + "DoubleSwipeDown", + "DoubleSwipeUp", + "DoubleTapSwipeDown", + "DoubleTapSwipeUp", + "Drafts", + "Drag", + "DrawImage", + "DrawShape", + "DrawText", + "DrawerAdd", + "DrawerArrowDownload", + "DrawerDismiss", + "DrawerPlay", + "DrawerSubtract", + "DrinkBeer", + "DrinkBottle", + "DrinkBottleOff", + "DrinkCoffee", + "DrinkMargarita", + "DrinkToGo", + "DrinkWine", + "DriveTrain", + "Drop", + "DualScreen", + "DualScreenAdd", + "DualScreenArrowRight", + "DualScreenArrowUp", + "DualScreenClock", + "DualScreenClosedAlert", + "DualScreenDesktop", + "DualScreenDismiss", + "DualScreenGroup", + "DualScreenHeader", + "DualScreenLock", + "DualScreenMirror", + "DualScreenPagination", + "DualScreenSettings", + "DualScreenSpan", + "DualScreenSpeaker", + "DualScreenStatusBar", + "DualScreenTablet", + "DualScreenUpdate", + "DualScreenVerticalScroll", + "DualScreenVibrate", + "Dumbbell", + "Dust", + "Earth", + "EarthLeaf", + "Edit", + "EditArrowBack", + "EditOff", + "EditProhibited", + "EditSettings", + "Elevator", + "Emoji", + "EmojiAdd", + "EmojiAngry", + "EmojiEdit", + "EmojiHand", + "EmojiHint", + "EmojiLaugh", + "EmojiMeh", + "EmojiMultiple", + "EmojiSad", + "EmojiSadSlight", + "EmojiSmileSlight", + "EmojiSparkle", + "EmojiSurprise", + "Engine", + "EqualCircle", + "EqualOff", + "Eraser", + "EraserMedium", + "EraserSegment", + "EraserSmall", + "EraserTool", + "ErrorCircle", + "ErrorCircleSettings", + "ExpandUpLeft", + "ExpandUpRight", + "ExtendedDock", + "Eye", + "EyeLines", + "EyeOff", + "EyeTracking", + "EyeTrackingOff", + "Eyedropper", + "EyedropperOff", + "FStop", + "FastAcceleration", + "FastForward", + "Fax", + "Feed", + "Filmstrip", + "FilmstripPlay", + "FilmstripSplit", + "Filter", + "FilterAdd", + "FilterDismiss", + "FilterSync", + "Fingerprint", + "Fire", + "Fireplace", + "FixedWidth", + "Flag", + "FlagCheckered", + "FlagClock", + "FlagOff", + "Flash", + "FlashAdd", + "FlashAuto", + "FlashCheckmark", + "FlashFlow", + "FlashOff", + "FlashPlay", + "FlashSettings", + "FlashSparkle", + "Flashlight", + "FlashlightOff", + "FlipHorizontal", + "FlipVertical", + "Flow", + "Flowchart", + "FlowchartCircle", + "Fluent", + "Fluid", + "Folder", + "FolderAdd", + "FolderArrowLeft", + "FolderArrowRight", + "FolderArrowUp", + "FolderBriefcase", + "FolderGlobe", + "FolderLightning", + "FolderLink", + "FolderList", + "FolderMail", + "FolderOpen", + "FolderOpenVertical", + "FolderPeople", + "FolderPerson", + "FolderProhibited", + "FolderSwap", + "FolderSync", + "FolderZip", + "FontDecrease", + "FontIncrease", + "FontSpaceTrackingIn", + "FontSpaceTrackingOut", + "Food", + "FoodApple", + "FoodCake", + "FoodCarrot", + "FoodChickenLeg", + "FoodEgg", + "FoodFish", + "FoodGrains", + "FoodPizza", + "FoodToast", + "Form", + "FormMultiple", + "FormNew", + "Fps120", + "Fps240", + "Fps30", + "Fps60", + "Fps960", + "Frame", + "FullScreenMaximize", + "FullScreenMinimize", + "Games", + "GanttChart", + "Gas", + "GasPump", + "Gather", + "Gauge", + "GaugeAdd", + "Gavel", + "GavelProhibited", + "Gesture", + "Gif", + "Gift", + "GiftCard", + "GiftCardAdd", + "GiftCardArrowRight", + "GiftCardMoney", + "GiftCardMultiple", + "GiftOpen", + "Glance", + "GlanceHorizontal", + "Glasses", + "GlassesOff", + "Globe", + "GlobeAdd", + "GlobeClock", + "GlobeDesktop", + "GlobeLocation", + "GlobePerson", + "GlobeProhibited", + "GlobeSearch", + "GlobeShield", + "GlobeStar", + "GlobeSurface", + "GlobeVideo", + "Grid", + "GridDots", + "GridKanban", + "Group", + "GroupDismiss", + "GroupList", + "GroupReturn", + "Guardian", + "Guest", + "GuestAdd", + "Guitar", + "HandDraw", + "HandLeft", + "HandLeftChat", + "HandOpenHeart", + "HandRight", + "HandRightOff", + "HandWave", + "Handshake", + "HardDrive", + "HatGraduation", + "HatGraduationSparkle", + "Hd", + "Hdr", + "HdrOff", + "Headphones", + "HeadphonesSoundWave", + "Headset", + "HeadsetAdd", + "HeadsetVr", + "Heart", + "HeartBroken", + "HeartCircle", + "HeartCircleHint", + "HeartOff", + "HeartPulse", + "HeartPulseCheckmark", + "HeartPulseError", + "HeartPulseWarning", + "Hexagon", + "HexagonThree", + "Highlight", + "HighlightLink", + "History", + "HistoryDismiss", + "Home", + "HomeAdd", + "HomeCheckmark", + "HomeDatabase", + "HomeHeart", + "HomeMore", + "HomePerson", + "HomeSplit", + "Hourglass", + "HourglassHalf", + "HourglassOneQuarter", + "HourglassThreeQuarter", + "Icons", + "Image", + "ImageAdd", + "ImageAltText", + "ImageArrowBack", + "ImageArrowCounterclockwise", + "ImageArrowForward", + "ImageBorder", + "ImageCircle", + "ImageCopy", + "ImageEdit", + "ImageGlobe", + "ImageMultiple", + "ImageMultipleOff", + "ImageOff", + "ImageProhibited", + "ImageReflection", + "ImageSearch", + "ImageShadow", + "ImageSparkle", + "ImageStack", + "ImageTable", + "ImmersiveReader", + "Important", + "Incognito", + "Info", + "InfoShield", + "InkStroke", + "InkStrokeArrowDown", + "InkStrokeArrowUpDown", + "InkingTool", + "InprivateAccount", + "Insert", + "IosChevronRight", + "Iot", + "IotAlert", + "Javascript", + "Joystick", + "Key", + "KeyCommand", + "KeyMultiple", + "KeyReset", + "Keyboard123", + "Keyboard", + "KeyboardDock", + "KeyboardLayoutFloat", + "KeyboardLayoutOneHandedLeft", + "KeyboardLayoutResize", + "KeyboardLayoutSplit", + "KeyboardShift", + "KeyboardShiftUppercase", + "KeyboardTab", + "Laptop", + "LaptopDismiss", + "LaptopShield", + "LaserTool", + "Lasso", + "LauncherSettings", + "Layer", + "LayerDiagonal", + "LayerDiagonalPerson", + "LeafOne", + "LeafThree", + "LeafTwo", + "LearningApp", + "Library", + "Lightbulb", + "LightbulbCheckmark", + "LightbulbCircle", + "LightbulbFilament", + "LightbulbPerson", + "Likert", + "Line", + "LineDashes", + "LineHorizontal1", + "LineHorizontal1Dashes", + "LineHorizontal2DashesSolid", + "LineHorizontal3", + "LineHorizontal4", + "LineHorizontal4Search", + "LineHorizontal5", + "LineHorizontal5Error", + "LineStyle", + "LineThickness", + "Link", + "LinkDismiss", + "LinkEdit", + "LinkMultiple", + "LinkSquare", + "LinkToolbox", + "List", + "ListBar", + "ListBarTree", + "ListBarTreeOffset", + "ListRtl", + "Live", + "LiveOff", + "LocalLanguage", + "Location", + "LocationAdd", + "LocationAddLeft", + "LocationAddRight", + "LocationAddUp", + "LocationArrow", + "LocationArrowLeft", + "LocationArrowRight", + "LocationArrowUp", + "LocationDismiss", + "LocationLive", + "LocationOff", + "LockClosed", + "LockClosedKey", + "LockMultiple", + "LockOpen", + "LockShield", + "Lottery", + "Luggage", + "Mail", + "MailAdd", + "MailAlert", + "MailAllRead", + "MailAllUnread", + "MailArrowDoubleBack", + "MailArrowDown", + "MailArrowForward", + "MailArrowUp", + "MailAttach", + "MailCheckmark", + "MailClock", + "MailCopy", + "MailDismiss", + "MailEdit", + "MailError", + "MailInbox", + "MailInboxAdd", + "MailInboxAll", + "MailInboxArrowDown", + "MailInboxArrowRight", + "MailInboxArrowUp", + "MailInboxCheckmark", + "MailInboxDismiss", + "MailLink", + "MailList", + "MailMultiple", + "MailOff", + "MailOpenPerson", + "MailPause", + "MailProhibited", + "MailRead", + "MailReadMultiple", + "MailSettings", + "MailShield", + "MailTemplate", + "MailUnread", + "MailWarning", + "Map", + "MapDrive", + "Markdown", + "MatchAppLayout", + "MathFormatLinear", + "MathFormatProfessional", + "MathFormula", + "MathSymbols", + "Maximize", + "MeetNow", + "Megaphone", + "MegaphoneCircle", + "MegaphoneLoud", + "MegaphoneOff", + "Mention", + "MentionArrowDown", + "MentionBrackets", + "Merge", + "Mic", + "MicOff", + "MicProhibited", + "MicPulse", + "MicPulseOff", + "MicRecord", + "MicSettings", + "MicSparkle", + "MicSync", + "Microscope", + "Midi", + "MobileOptimized", + "Mold", + "Molecule", + "Money", + "MoneyCalculator", + "MoneyDismiss", + "MoneyHand", + "MoneyOff", + "MoneySettings", + "MoreCircle", + "MoreHorizontal", + "MoreVertical", + "MountainLocationBottom", + "MountainLocationTop", + "MountainTrail", + "MoviesAndTv", + "Multiplier12x", + "Multiplier15x", + "Multiplier18x", + "Multiplier1x", + "Multiplier2x", + "Multiplier5x", + "MultiselectLtr", + "MultiselectRtl", + "MusicNote1", + "MusicNote2", + "MusicNote2Play", + "MusicNoteOff1", + "MusicNoteOff2", + "MyLocation", + "Navigation", + "NavigationLocationTarget", + "NavigationPlay", + "NavigationUnread", + "NetworkCheck", + "New", + "News", + "Next", + "NextFrame", + "Note", + "NoteAdd", + "NoteEdit", + "NotePin", + "Notebook", + "NotebookAdd", + "NotebookArrowCurveDown", + "NotebookError", + "NotebookEye", + "NotebookLightning", + "NotebookQuestionMark", + "NotebookSection", + "NotebookSectionArrowRight", + "NotebookSubsection", + "NotebookSync", + "Notepad", + "NotepadEdit", + "NotepadPerson", + "NumberCircle1", + "NumberCircle2", + "NumberCircle3", + "NumberCircle4", + "NumberCircle5", + "NumberRow", + "NumberSymbol", + "NumberSymbolDismiss", + "NumberSymbolSquare", + "Open", + "OpenFolder", + "OpenOff", + "Options", + "Organization", + "OrganizationHorizontal", + "Orientation", + "Oval", + "Oven", + "PaddingDown", + "PaddingLeft", + "PaddingRight", + "PaddingTop", + "PageFit", + "PaintBrush", + "PaintBrushArrowDown", + "PaintBrushArrowUp", + "PaintBucket", + "Pair", + "PanelBottom", + "PanelBottomContract", + "PanelBottomExpand", + "PanelLeft", + "PanelLeftAdd", + "PanelLeftContract", + "PanelLeftExpand", + "PanelLeftHeader", + "PanelLeftHeaderAdd", + "PanelLeftHeaderKey", + "PanelLeftKey", + "PanelLeftText", + "PanelLeftTextAdd", + "PanelLeftTextDismiss", + "PanelRight", + "PanelRightAdd", + "PanelRightContract", + "PanelRightCursor", + "PanelRightExpand", + "PanelSeparateWindow", + "PanelTopContract", + "PanelTopExpand", + "Password", + "Patch", + "Patient", + "Pause", + "PauseCircle", + "PauseOff", + "PauseSettings", + "Payment", + "Pen", + "PenDismiss", + "PenOff", + "PenProhibited", + "PenSparkle", + "Pentagon", + "People", + "PeopleAdd", + "PeopleAudience", + "PeopleCall", + "PeopleCheckmark", + "PeopleCommunity", + "PeopleCommunityAdd", + "PeopleEdit", + "PeopleError", + "PeopleList", + "PeopleLock", + "PeopleMoney", + "PeopleProhibited", + "PeopleQueue", + "PeopleSearch", + "PeopleSettings", + "PeopleStar", + "PeopleSwap", + "PeopleSync", + "PeopleTeam", + "PeopleTeamAdd", + "PeopleTeamDelete", + "PeopleTeamToolbox", + "PeopleToolbox", + "Person", + "Person5", + "Person6", + "PersonAccounts", + "PersonAdd", + "PersonAlert", + "PersonArrowBack", + "PersonArrowLeft", + "PersonArrowRight", + "PersonAvailable", + "PersonBoard", + "PersonCall", + "PersonChat", + "PersonCircle", + "PersonClock", + "PersonDelete", + "PersonDesktop", + "PersonEdit", + "PersonFeedback", + "PersonHeart", + "PersonInfo", + "PersonKey", + "PersonLightbulb", + "PersonLightning", + "PersonLink", + "PersonLock", + "PersonMail", + "PersonMoney", + "PersonNote", + "PersonPill", + "PersonProhibited", + "PersonQuestionMark", + "PersonRibbon", + "PersonRunning", + "PersonSearch", + "PersonSettings", + "PersonSquare", + "PersonStar", + "PersonStarburst", + "PersonSubtract", + "PersonSupport", + "PersonSwap", + "PersonSync", + "PersonTag", + "PersonVoice", + "PersonWalking", + "PersonWrench", + "Phone", + "PhoneAdd", + "PhoneArrowRight", + "PhoneChat", + "PhoneCheckmark", + "PhoneDesktop", + "PhoneDesktopAdd", + "PhoneDismiss", + "PhoneEdit", + "PhoneEraser", + "PhoneKey", + "PhoneLaptop", + "PhoneLinkSetup", + "PhoneLock", + "PhonePageHeader", + "PhonePagination", + "PhoneScreenTime", + "PhoneShake", + "PhoneSpanIn", + "PhoneSpanOut", + "PhoneSpeaker", + "PhoneStatusBar", + "PhoneTablet", + "PhoneUpdate", + "PhoneUpdateCheckmark", + "PhoneVerticalScroll", + "PhoneVibrate", + "PhotoFilter", + "Pi", + "PictureInPicture", + "PictureInPictureEnter", + "PictureInPictureExit", + "Pill", + "Pin", + "PinOff", + "Pipeline", + "PipelineAdd", + "PipelineArrowCurveDown", + "PipelinePlay", + "Pivot", + "PlantGrass", + "PlantRagweed", + "Play", + "PlayCircle", + "PlayCircleHint", + "PlaySettings", + "PlayingCards", + "PlugConnected", + "PlugConnectedAdd", + "PlugConnectedCheckmark", + "PlugConnectedSettings", + "PlugDisconnected", + "PointScan", + "Poll", + "PollHorizontal", + "PortHdmi", + "PortMicroUsb", + "PortUsbA", + "PortUsbC", + "PositionBackward", + "PositionForward", + "PositionToBack", + "PositionToFront", + "Power", + "Predictions", + "Premium", + "PremiumPerson", + "PresenceAvailable", + "PresenceAway", + "PresenceBlocked", + "PresenceDnd", + "PresenceOffline", + "PresenceOof", + "PresenceUnknown", + "Presenter", + "PresenterOff", + "PreviewLink", + "Previous", + "PreviousFrame", + "Print", + "PrintAdd", + "Production", + "ProductionCheckmark", + "Prohibited", + "ProhibitedMultiple", + "ProhibitedNote", + "ProjectionScreen", + "ProjectionScreenDismiss", + "ProtocolHandler", + "Pulse", + "PulseSquare", + "PuzzleCube", + "PuzzleCubePiece", + "PuzzlePiece", + "PuzzlePieceShield", + "QrCode", + "Question", + "QuestionCircle", + "QuizNew", + "Radar", + "RadarCheckmark", + "RadarRectangleMultiple", + "RadioButton", + "Ram", + "RatingMature", + "RatioOneToOne", + "ReOrder", + "ReOrderDotsHorizontal", + "ReOrderDotsVertical", + "ReadAloud", + "ReadingList", + "ReadingListAdd", + "ReadingModeMobile", + "RealEstate", + "Receipt", + "ReceiptAdd", + "ReceiptBag", + "ReceiptCube", + "ReceiptMoney", + "ReceiptPlay", + "ReceiptSearch", + "ReceiptSparkles", + "Record", + "RecordStop", + "RectangleLandscape", + "RectangleLandscapeHintCopy", + "RectanglePortraitLocationTarget", + "Recycle", + "RemixAdd", + "Remote", + "Rename", + "Reorder", + "Replay", + "Resize", + "ResizeImage", + "ResizeLarge", + "ResizeSmall", + "ResizeTable", + "ResizeVideo", + "Reward", + "Rewind", + "Rhombus", + "Ribbon", + "RibbonAdd", + "RibbonOff", + "RibbonStar", + "RoadCone", + "Rocket", + "RotateLeft", + "RotateRight", + "Router", + "RowTriple", + "Rss", + "Ruler", + "Run", + "Sanitize", + "Save", + "SaveArrowRight", + "SaveCopy", + "SaveEdit", + "SaveImage", + "SaveMultiple", + "SaveSearch", + "SaveSync", + "Savings", + "ScaleFill", + "ScaleFit", + "Scales", + "Scan", + "ScanCamera", + "ScanDash", + "ScanObject", + "ScanTable", + "ScanText", + "ScanThumbUp", + "ScanThumbUpOff", + "ScanType", + "ScanTypeCheckmark", + "ScanTypeOff", + "Scratchpad", + "ScreenCut", + "ScreenPerson", + "ScreenSearch", + "Screenshot", + "Script", + "Search", + "SearchInfo", + "SearchSettings", + "SearchShield", + "SearchSquare", + "SearchVisual", + "SelectAllOff", + "SelectAllOn", + "SelectObject", + "SelectObjectSkew", + "SelectObjectSkewDismiss", + "SelectObjectSkewEdit", + "Send", + "SendBeaker", + "SendClock", + "SendCopy", + "SerialPort", + "Server", + "ServerMultiple", + "ServerPlay", + "ServiceBell", + "Settings", + "SettingsChat", + "SettingsCogMultiple", + "ShapeExclude", + "ShapeIntersect", + "ShapeSubtract", + "ShapeUnion", + "Shapes", + "Share", + "ShareAndroid", + "ShareCloseTray", + "ShareIos", + "ShareScreenPerson", + "ShareScreenPersonOverlay", + "ShareScreenPersonOverlayInside", + "ShareScreenPersonP", + "ShareScreenStart", + "ShareScreenStop", + "Shield", + "ShieldAdd", + "ShieldBadge", + "ShieldCheckmark", + "ShieldDismiss", + "ShieldDismissShield", + "ShieldError", + "ShieldGlobe", + "ShieldKeyhole", + "ShieldLock", + "ShieldPerson", + "ShieldPersonAdd", + "ShieldProhibited", + "ShieldQuestion", + "ShieldTask", + "Shifts", + "Shifts30Minutes", + "ShiftsActivity", + "ShiftsAdd", + "ShiftsAvailability", + "ShiftsCheckmark", + "ShiftsDay", + "ShiftsOpen", + "ShiftsProhibited", + "ShiftsQuestionMark", + "ShiftsTeam", + "ShoppingBag", + "ShoppingBagArrowLeft", + "ShoppingBagDismiss", + "ShoppingBagPause", + "ShoppingBagPercent", + "ShoppingBagPlay", + "ShoppingBagTag", + "Shortpick", + "Showerhead", + "SidebarSearchLtr", + "SidebarSearchRtl", + "SignOut", + "Signature", + "Sim", + "SkipBack10", + "SkipForward10", + "SkipForward30", + "SkipForwardTab", + "SlashForward", + "Sleep", + "SlideAdd", + "SlideArrowRight", + "SlideEraser", + "SlideGrid", + "SlideHide", + "SlideLayout", + "SlideLink", + "SlideMicrophone", + "SlideMultiple", + "SlideMultipleArrowRight", + "SlideMultipleSearch", + "SlideRecord", + "SlideSearch", + "SlideSettings", + "SlideSize", + "SlideText", + "SlideTextMultiple", + "SlideTextPerson", + "SlideTextSparkle", + "SlideTransition", + "Smartwatch", + "SmartwatchDot", + "Snooze", + "SoundSource", + "SoundWaveCircle", + "Space3d", + "Spacebar", + "Sparkle", + "SparkleCircle", + "Speaker0", + "Speaker1", + "Speaker2", + "SpeakerBluetooth", + "SpeakerEdit", + "SpeakerMute", + "SpeakerOff", + "SpeakerSettings", + "SpeakerUsb", + "SpinnerIos", + "SplitHint", + "SplitHorizontal", + "SplitVertical", + "Sport", + "SportAmericanFootball", + "SportBaseball", + "SportBasketball", + "SportHockey", + "SportSoccer", + "Square", + "SquareAdd", + "SquareArrowForward", + "SquareDismiss", + "SquareEraser", + "SquareHint", + "SquareHintApps", + "SquareHintArrowBack", + "SquareHintSparkles", + "SquareMultiple", + "SquareShadow", + "SquaresNested", + "Stack", + "StackAdd", + "StackArrowForward", + "StackStar", + "StackVertical", + "Star", + "StarAdd", + "StarArrowBack", + "StarArrowRightEnd", + "StarArrowRightStart", + "StarCheckmark", + "StarDismiss", + "StarEdit", + "StarEmphasis", + "StarHalf", + "StarLineHorizontal3", + "StarOff", + "StarOneQuarter", + "StarProhibited", + "StarSettings", + "StarThreeQuarter", + "Status", + "Steps", + "Stethoscope", + "Sticker", + "StickerAdd", + "Stop", + "Storage", + "StoreMicrosoft", + "Stream", + "StreamInput", + "StreamInputOutput", + "StreamOutput", + "StyleGuide", + "SubGrid", + "Subtitles", + "Subtract", + "SubtractCircle", + "SubtractCircleArrowBack", + "SubtractCircleArrowForward", + "SubtractSquare", + "SubtractSquareMultiple", + "SurfaceEarbuds", + "SurfaceHub", + "SwimmingPool", + "SwipeDown", + "SwipeRight", + "SwipeUp", + "Symbols", + "SyncOff", + "Syringe", + "System", + "Tab", + "TabAdd", + "TabArrowLeft", + "TabDesktop", + "TabDesktopArrowClockwise", + "TabDesktopArrowLeft", + "TabDesktopBottom", + "TabDesktopClock", + "TabDesktopCopy", + "TabDesktopImage", + "TabDesktopLink", + "TabDesktopMultiple", + "TabDesktopMultipleBottom", + "TabDesktopNewPage", + "TabInPrivate", + "TabInprivateAccount", + "TabProhibited", + "TabShieldDismiss", + "Table", + "TableAdd", + "TableArrowUp", + "TableBottomRow", + "TableCalculator", + "TableCellEdit", + "TableCellsMerge", + "TableCellsSplit", + "TableChecker", + "TableColumnTopBottom", + "TableCopy", + "TableDeleteColumn", + "TableDeleteRow", + "TableDismiss", + "TableEdit", + "TableFreezeColumn", + "TableFreezeColumnAndRow", + "TableFreezeRow", + "TableImage", + "TableInsertColumn", + "TableInsertRow", + "TableLightning", + "TableLink", + "TableLock", + "TableMoveAbove", + "TableMoveBelow", + "TableMoveLeft", + "TableMoveRight", + "TableMultiple", + "TableOffset", + "TableOffsetAdd", + "TableOffsetLessThanOrEqualTo", + "TableOffsetSettings", + "TableResizeColumn", + "TableResizeRow", + "TableSearch", + "TableSettings", + "TableSimple", + "TableSimpleCheckmark", + "TableSimpleExclude", + "TableSimpleInclude", + "TableSimpleMultiple", + "TableSplit", + "TableStackAbove", + "TableStackBelow", + "TableStackLeft", + "TableStackRight", + "TableSwitch", + "Tablet", + "TabletLaptop", + "TabletSpeaker", + "Tabs", + "Tag", + "TagCircle", + "TagDismiss", + "TagError", + "TagLock", + "TagMultiple", + "TagOff", + "TagQuestionMark", + "TagReset", + "TagSearch", + "TapDouble", + "TapSingle", + "Target", + "TargetArrow", + "TargetEdit", + "TaskListAdd", + "TaskListLtr", + "TaskListRtl", + "TaskListSquareAdd", + "TaskListSquareDatabase", + "TaskListSquareLtr", + "TaskListSquarePerson", + "TaskListSquareRtl", + "TaskListSquareSettings", + "TasksApp", + "Teddy", + "Temperature", + "Tent", + "TetrisApp", + "TextAdd", + "TextAddSpaceAfter", + "TextAddSpaceBefore", + "TextAddT", + "TextAlignCenter", + "TextAlignCenterRotate270", + "TextAlignCenterRotate90", + "TextAlignDistributed", + "TextAlignDistributedEvenly", + "TextAlignDistributedVertical", + "TextAlignJustify", + "TextAlignJustifyLow", + "TextAlignJustifyLow90", + "TextAlignJustifyLowRotate270", + "TextAlignJustifyLowRotate90", + "TextAlignJustifyRotate270", + "TextAlignJustifyRotate90", + "TextAlignLeft", + "TextAlignLeftRotate270", + "TextAlignLeftRotate90", + "TextAlignRight", + "TextAlignRightRotate270", + "TextAlignRightRotate90", + "TextAsterisk", + "TextBaseline", + "TextBold", + "TextBoxSettings", + "TextBulletList", + "TextBulletList90", + "TextBulletListAdd", + "TextBulletListCheckmark", + "TextBulletListDismiss", + "TextBulletListLtr", + "TextBulletListLtr90", + "TextBulletListRtl", + "TextBulletListRtl90", + "TextBulletListSquare", + "TextBulletListSquareClock", + "TextBulletListSquareEdit", + "TextBulletListSquarePerson", + "TextBulletListSquareSearch", + "TextBulletListSquareSettings", + "TextBulletListSquareShield", + "TextBulletListSquareSparkle", + "TextBulletListSquareToolbox", + "TextBulletListSquareWarning", + "TextBulletListTree", + "TextCaseLowercase", + "TextCaseTitle", + "TextCaseUppercase", + "TextChangeCase", + "TextClearFormatting", + "TextCollapse", + "TextColor", + "TextColumnOne", + "TextColumnOneNarrow", + "TextColumnOneSemiNarrow", + "TextColumnOneWide", + "TextColumnOneWideLightning", + "TextColumnThree", + "TextColumnTwo", + "TextColumnTwoLeft", + "TextColumnTwoRight", + "TextColumnWide", + "TextContinuous", + "TextDensity", + "TextDescription", + "TextDescriptionLtr", + "TextDescriptionRtl", + "TextDirectionHorizontalLeft", + "TextDirectionHorizontalLtr", + "TextDirectionHorizontalRight", + "TextDirectionHorizontalRtl", + "TextDirectionRotate270Right", + "TextDirectionRotate315Right", + "TextDirectionRotate45Right", + "TextDirectionRotate90Left", + "TextDirectionRotate90Ltr", + "TextDirectionRotate90Right", + "TextDirectionRotate90Rtl", + "TextDirectionVertical", + "TextEditStyle", + "TextEffects", + "TextExpand", + "TextField", + "TextFirstLine", + "TextFont", + "TextFontInfo", + "TextFontSize", + "TextFootnote", + "TextGrammarArrowLeft", + "TextGrammarArrowRight", + "TextGrammarCheckmark", + "TextGrammarDismiss", + "TextGrammarError", + "TextGrammarSettings", + "TextGrammarWand", + "TextHanging", + "TextHeader1", + "TextHeader2", + "TextHeader3", + "TextIndentDecrease", + "TextIndentDecreaseLtr", + "TextIndentDecreaseLtr90", + "TextIndentDecreaseLtrRotate270", + "TextIndentDecreaseRotate270", + "TextIndentDecreaseRotate90", + "TextIndentDecreaseRtl", + "TextIndentDecreaseRtl90", + "TextIndentDecreaseRtlRotate270", + "TextIndentIncrease", + "TextIndentIncreaseLtr", + "TextIndentIncreaseLtr90", + "TextIndentIncreaseLtrRotate270", + "TextIndentIncreaseRotate270", + "TextIndentIncreaseRotate90", + "TextIndentIncreaseRtl", + "TextIndentIncreaseRtl90", + "TextIndentIncreaseRtlRotate270", + "TextItalic", + "TextLineSpacing", + "TextMore", + "TextNumberFormat", + "TextNumberListLtr", + "TextNumberListLtr90", + "TextNumberListLtrRotate270", + "TextNumberListRotate270", + "TextNumberListRotate90", + "TextNumberListRtl", + "TextNumberListRtl90", + "TextNumberListRtlRotate270", + "TextParagraph", + "TextParagraphDirection", + "TextParagraphDirectionLeft", + "TextParagraphDirectionRight", + "TextPeriodAsterisk", + "TextPositionBehind", + "TextPositionFront", + "TextPositionLine", + "TextPositionSquare", + "TextPositionSquareLeft", + "TextPositionSquareRight", + "TextPositionThrough", + "TextPositionTight", + "TextPositionTopBottom", + "TextProofingTools", + "TextQuote", + "TextSortAscending", + "TextSortDescending", + "TextStrikethrough", + "TextSubscript", + "TextSuperscript", + "TextT", + "TextUnderline", + "TextUnderlineCharacterU", + "TextUnderlineDouble", + "TextWholeWord", + "TextWordCount", + "TextWrap", + "TextWrapOff", + "Textbox", + "TextboxAlignBottom", + "TextboxAlignBottomCenter", + "TextboxAlignBottomLeft", + "TextboxAlignBottomRight", + "TextboxAlignBottomRotate90", + "TextboxAlignCenter", + "TextboxAlignMiddle", + "TextboxAlignMiddleLeft", + "TextboxAlignMiddleRight", + "TextboxAlignMiddleRotate90", + "TextboxAlignTop", + "TextboxAlignTopCenter", + "TextboxAlignTopLeft", + "TextboxAlignTopRight", + "TextboxAlignTopRotate90", + "TextboxMore", + "TextboxRotate90", + "TextboxSettings", + "Thinking", + "ThumbDislike", + "ThumbLike", + "ThumbLikeDislike", + "TicketDiagonal", + "TicketHorizontal", + "TimeAndWeather", + "TimePicker", + "Timeline", + "Timer10", + "Timer2", + "Timer", + "Timer3", + "TimerOff", + "ToggleLeft", + "ToggleMultiple", + "ToggleRight", + "Toolbox", + "TooltipQuote", + "TopSpeed", + "Translate", + "TranslateAuto", + "TranslateOff", + "Transmission", + "TrayItemAdd", + "TrayItemRemove", + "TreeDeciduous", + "TreeEvergreen", + "Triangle", + "TriangleDown", + "TriangleLeft", + "TriangleRight", + "TriangleUp", + "Trophy", + "TrophyLock", + "TrophyOff", + "Tv", + "TvArrowRight", + "TvUsb", + "Umbrella", + "UninstallApp", + "UsbPlug", + "UsbStick", + "Vault", + "VehicleBicycle", + "VehicleBus", + "VehicleCab", + "VehicleCableCar", + "VehicleCar", + "VehicleCarCollision", + "VehicleCarParking", + "VehicleCarProfile", + "VehicleCarProfileLtr", + "VehicleCarProfileLtrClock", + "VehicleCarProfileRtl", + "VehicleShip", + "VehicleSubway", + "VehicleTruck", + "VehicleTruckBag", + "VehicleTruckCube", + "VehicleTruckProfile", + "Video", + "Video360", + "Video360Off", + "VideoAdd", + "VideoBackgroundEffect", + "VideoBackgroundEffectHorizontal", + "VideoChat", + "VideoClip", + "VideoClipMultiple", + "VideoClipOff", + "VideoOff", + "VideoPerson", + "VideoPersonCall", + "VideoPersonClock", + "VideoPersonOff", + "VideoPersonSparkle", + "VideoPersonSparkleOff", + "VideoPersonStar", + "VideoPersonStarOff", + "VideoPlayPause", + "VideoProhibited", + "VideoRecording", + "VideoSecurity", + "VideoSwitch", + "VideoSync", + "ViewDesktop", + "ViewDesktopMobile", + "VirtualNetwork", + "VirtualNetworkToolbox", + "Voicemail", + "VoicemailArrowBack", + "VoicemailArrowForward", + "VoicemailArrowSubtract", + "VoicemailShield", + "VoicemailSubtract", + "Vote", + "WalkieTalkie", + "Wallet", + "WalletCreditCard", + "Wallpaper", + "Wand", + "Warning", + "WarningShield", + "Washer", + "Water", + "WeatherBlowingSnow", + "WeatherCloudy", + "WeatherDrizzle", + "WeatherDuststorm", + "WeatherFog", + "WeatherHailDay", + "WeatherHailNight", + "WeatherHaze", + "WeatherMoon", + "WeatherMoonOff", + "WeatherPartlyCloudyDay", + "WeatherPartlyCloudyNight", + "WeatherRain", + "WeatherRainShowersDay", + "WeatherRainShowersNight", + "WeatherRainSnow", + "WeatherSnow", + "WeatherSnowShowerDay", + "WeatherSnowShowerNight", + "WeatherSnowflake", + "WeatherSqualls", + "WeatherSunny", + "WeatherSunnyHigh", + "WeatherSunnyLow", + "WeatherThunderstorm", + "WebAsset", + "Whiteboard", + "Wifi1", + "Wifi2", + "Wifi3", + "Wifi4", + "WifiLock", + "WifiOff", + "WifiSettings", + "WifiWarning", + "Window", + "WindowAd", + "WindowAdOff", + "WindowAdPerson", + "WindowApps", + "WindowArrowUp", + "WindowBulletList", + "WindowBulletListAdd", + "WindowConsole", + "WindowDatabase", + "WindowDevEdit", + "WindowDevTools", + "WindowEdit", + "WindowHeaderHorizontal", + "WindowHeaderHorizontalOff", + "WindowHeaderVertical", + "WindowInprivate", + "WindowInprivateAccount", + "WindowLocationTarget", + "WindowMultiple", + "WindowMultipleSwap", + "WindowNew", + "WindowPlay", + "WindowSettings", + "WindowShield", + "WindowText", + "WindowWrench", + "Wrench", + "WrenchScrewdriver", + "XboxConsole", + "XboxController", + "XboxControllerError", + "Xray", + "ZoomFit", + "ZoomIn", + "ZoomOut" + ] + } + } + Component { + file: "definitions.h" + name: "RibbonPopupDialogType" + accessSemantics: "none" + exports: ["RibbonUI/RibbonPopupDialogType 1.0"] + isCreatable: false + exportMetaObjectRevisions: [256] + Enum { + name: "ButtonFlag" + values: ["NeutralButton", "NegativeButton", "PositiveButton"] + } + } + Component { + file: "ribbontheme.h" + name: "RibbonTheme" + accessSemantics: "reference" + defaultProperty: "data" + parentProperty: "parent" + prototype: "QQuickItem" + exports: ["RibbonUI/RibbonTheme 1.0"] + isCreatable: false + isSingleton: true + exportMetaObjectRevisions: [256] + Property { + name: "dark_mode" + type: "bool" + read: "dark_mode" + notify: "dark_modeChanged" + index: 0 + isReadonly: true + isFinal: true + } + Property { + name: "theme_mode" + type: "RibbonThemeType::ThemeMode" + notify: "theme_modeChanged" + index: 1 + isFinal: true + } + Property { + name: "modern_style" + type: "bool" + notify: "modern_styleChanged" + index: 2 + isFinal: true + } + Signal { name: "theme_modeChanged" } + Signal { name: "modern_styleChanged" } + Signal { name: "dark_modeChanged" } + } + Component { + file: "definitions.h" + name: "RibbonThemeType" + accessSemantics: "none" + exports: ["RibbonUI/RibbonThemeType 1.0"] + isCreatable: false + exportMetaObjectRevisions: [256] + Enum { + name: "ThemeMode" + values: ["System", "Light", "Dark"] + } + } + Component { + file: "ribbonui.h" + name: "RibbonUI" + accessSemantics: "reference" + defaultProperty: "data" + parentProperty: "parent" + prototype: "QQuickItem" + exports: ["RibbonUI/RibbonUI 1.0"] + isCreatable: false + isSingleton: true + exportMetaObjectRevisions: [256] + Property { name: "version"; type: "QString"; notify: "versionChanged"; index: 0; isFinal: true } + Signal { name: "versionChanged" } + } +} diff --git a/lib_source/definitions.h b/lib_source/definitions.h new file mode 100644 index 0000000..5c3caa9 --- /dev/null +++ b/lib_source/definitions.h @@ -0,0 +1,4724 @@ +#ifndef DEFINITIONS_H +#define DEFINITIONS_H + +#include +#include + +namespace RibbonIconsFilledEnum { +Q_NAMESPACE +enum class RibbonIcons_Filled{ + AccessTime=57344, + Accessibility=57346, + AccessibilityCheckmark=57348, + Add=57350, + AddCircle=57352, + AddSquare=57354, + AddSquareMultiple=57356, + AddSubtractCircle=57358, + Airplane=57360, + AirplaneLanding=57362, + AirplaneTakeOff=57364, + Album=57366, + AlbumAdd=57368, + Alert=57370, + AlertBadge=57372, + AlertOff=57374, + AlertOn=57376, + AlertSnooze=57378, + AlertUrgent=57380, + AlignBottom=57382, + AlignCenterHorizontal=57384, + AlignCenterVertical=57386, + AlignEndHorizontal=57388, + AlignEndVertical=57390, + AlignLeft=57392, + AlignRight=57394, + AlignSpaceAroundHorizontal=57396, + AlignSpaceAroundVertical=57398, + AlignSpaceBetweenHorizontal=57400, + AlignSpaceBetweenVertical=57402, + AlignSpaceEvenlyHorizontal=57404, + AlignSpaceEvenlyVertical=57406, + AlignSpaceFitVertical=57408, + AlignStartHorizontal=57410, + AlignStartVertical=57412, + AlignStraighten=57414, + AlignStretchHorizontal=57416, + AlignStretchVertical=57418, + AlignTop=57420, + AnimalCat=57422, + AnimalDog=57424, + AnimalRabbit=57426, + AnimalRabbitOff=57428, + AnimalTurtle=57430, + AppFolder=57432, + AppGeneric=57434, + AppRecent=57436, + AppTitle=57438, + ApprovalsApp=57440, + Apps=57442, + AppsAddIn=57444, + AppsList=57446, + AppsListDetail=57448, + Archive=57450, + ArchiveArrowBack=57452, + ArchiveMultiple=57454, + ArchiveSettings=57456, + ArrowAutofitContent=57458, + ArrowAutofitDown=57460, + ArrowAutofitHeight=57462, + ArrowAutofitHeightDotted=57464, + ArrowAutofitHeightIn=57466, + ArrowAutofitUp=57468, + ArrowAutofitWidth=57470, + ArrowAutofitWidthDotted=57472, + ArrowBetweenDown=57474, + ArrowBetweenUp=57476, + ArrowBidirectionalLeftRight=57478, + ArrowBidirectionalUpDown=57480, + ArrowBounce=57482, + ArrowCircleDown=57484, + ArrowCircleDownDouble=57486, + ArrowCircleDownRight=57488, + ArrowCircleDownSplit=57490, + ArrowCircleDownUp=57492, + ArrowCircleLeft=57494, + ArrowCircleRight=57496, + ArrowCircleUp=57498, + ArrowCircleUpLeft=57500, + ArrowCircleUpRight=57502, + ArrowClockwise=57504, + ArrowClockwiseDashes=57506, + ArrowCollapseAll=57508, + ArrowCounterclockwise=57510, + ArrowCounterclockwiseDashes=57512, + ArrowCurveDownLeft=57514, + ArrowCurveDownRight=57516, + ArrowCurveUpLeft=57518, + ArrowCurveUpRight=57520, + ArrowDown=57522, + ArrowDownLeft=57524, + ArrowDownload=57526, + ArrowEject=57528, + ArrowEnter=57530, + ArrowEnterLeft=57532, + ArrowEnterUp=57534, + ArrowExit=57536, + ArrowExpand=57538, + ArrowExport=57540, + ArrowExportLtr=57542, + ArrowExportRtl=57544, + ArrowExportUp=57546, + ArrowFit=57548, + ArrowFitIn=57550, + ArrowFlowDiagonalUpRight=57552, + ArrowFlowUpRight=57554, + ArrowFlowUpRightRectangleMultiple=57556, + ArrowForward=57558, + ArrowForwardDownLightning=57560, + ArrowForwardDownPerson=57562, + ArrowHookDownLeft=57564, + ArrowHookDownRight=57566, + ArrowHookUpLeft=57568, + ArrowHookUpRight=57570, + ArrowImport=57572, + ArrowJoin=57574, + ArrowLeft=57576, + ArrowMaximize=57578, + ArrowMaximizeVertical=57580, + ArrowMinimize=57582, + ArrowMinimizeVertical=57584, + ArrowMove=57586, + ArrowMoveInward=57588, + ArrowNext=57590, + ArrowOutlineDownLeft=57592, + ArrowOutlineUpRight=57594, + ArrowParagraph=57596, + ArrowPrevious=57598, + ArrowRedo=57600, + ArrowRepeat1=57602, + ArrowRepeatAll=57604, + ArrowRepeatAllOff=57606, + ArrowReply=57608, + ArrowReplyAll=57610, + ArrowReplyDown=57612, + ArrowReset=57614, + ArrowRight=57616, + ArrowRotateClockwise=57618, + ArrowRotateCounterclockwise=57620, + ArrowRouting=57622, + ArrowRoutingRectangleMultiple=57624, + ArrowShuffle=57626, + ArrowShuffleOff=57628, + ArrowSort=57630, + ArrowSortDown=57632, + ArrowSortDownLines=57634, + ArrowSortUp=57636, + ArrowSplit=57638, + ArrowSprint=57640, + ArrowSquareDown=57642, + ArrowSquareUpRight=57644, + ArrowStepBack=57646, + ArrowStepIn=57648, + ArrowStepInDiagonalDownLeft=57650, + ArrowStepInLeft=57652, + ArrowStepInRight=57654, + ArrowStepOut=57656, + ArrowStepOver=57658, + ArrowSwap=57660, + ArrowSync=57662, + ArrowSyncCheckmark=57664, + ArrowSyncCircle=57666, + ArrowSyncDismiss=57668, + ArrowSyncOff=57670, + ArrowTrending=57672, + ArrowTrendingCheckmark=57674, + ArrowTrendingDown=57676, + ArrowTrendingLines=57678, + ArrowTrendingSettings=57680, + ArrowTrendingSparkle=57682, + ArrowTrendingText=57684, + ArrowTrendingWrench=57686, + ArrowTurnBidirectionalDownRight=57688, + ArrowTurnDownLeft=57690, + ArrowTurnDownRight=57692, + ArrowTurnDownUp=57694, + ArrowTurnLeftDown=57696, + ArrowTurnLeftRight=57698, + ArrowTurnLeftUp=57700, + ArrowTurnRight=57702, + ArrowTurnRightDown=57704, + ArrowTurnRightLeft=57706, + ArrowTurnRightUp=57708, + ArrowTurnUpDown=57710, + ArrowTurnUpLeft=57712, + ArrowUndo=57714, + ArrowUp=57716, + ArrowUpLeft=57718, + ArrowUpRight=57720, + ArrowUpload=57722, + ArrowWrap=57724, + ArrowWrapOff=57726, + ArrowsBidirectional=57728, + Attach=57730, + AttachArrowRight=57732, + AttachText=57734, + AutoFitHeight=57736, + AutoFitWidth=57738, + Autocorrect=57740, + Autosum=57742, + Backpack=57744, + BackpackAdd=57746, + Backspace=57748, + Badge=57750, + Balloon=57752, + BarcodeScanner=57754, + Battery0=57756, + Battery1=57758, + Battery10=57760, + Battery2=57762, + Battery3=57764, + Battery4=57766, + Battery5=57768, + Battery6=57770, + Battery7=57772, + Battery8=57774, + Battery9=57776, + BatteryCharge=57778, + BatteryCheckmark=57780, + BatterySaver=57782, + BatteryWarning=57784, + Beach=57786, + Beaker=57788, + BeakerEdit=57790, + BeakerOff=57792, + BeakerSettings=57794, + Bed=57796, + BezierCurveSquare=57798, + BinFull=57800, + BinRecycle=57802, + BinRecycleFull=57804, + BinderTriangle=57806, + Bluetooth=57808, + BluetoothConnected=57810, + BluetoothDisabled=57812, + BluetoothSearching=57814, + Blur=57816, + Board=57818, + BoardGames=57820, + BoardHeart=57822, + BoardSplit=57824, + Book=57826, + BookAdd=57828, + BookArrowClockwise=57830, + BookClock=57832, + BookCoins=57834, + BookCompass=57836, + BookContacts=57838, + BookDatabase=57840, + BookDefault=57842, + BookDismiss=57843, + BookExclamationMark=57845, + BookGlobe=57847, + BookInformation=57849, + BookLetter=57851, + BookNumber=57853, + BookOpen=57855, + BookOpenGlobe=57857, + BookOpenMicrophone=57859, + BookPulse=57861, + BookQuestionMark=57863, + BookQuestionMarkRtl=57865, + BookSearch=57867, + BookStar=57869, + BookTemplate=57871, + BookTheta=57873, + BookToolbox=57875, + Bookmark=57877, + BookmarkAdd=57879, + BookmarkMultiple=57881, + BookmarkOff=57883, + BookmarkSearch=57885, + BorderAll=57887, + BorderBottom=57889, + BorderBottomDouble=57891, + BorderBottomThick=57893, + BorderLeft=57895, + BorderLeftRight=57897, + BorderNone=57899, + BorderOutside=57901, + BorderOutsideThick=57903, + BorderRight=57905, + BorderTop=57907, + BorderTopBottom=57909, + BorderTopBottomDouble=57911, + BorderTopBottomThick=57913, + Bot=57915, + BotAdd=57917, + BotSparkle=57919, + BowTie=57921, + BowlChopsticks=57923, + BowlSalad=57925, + Box=57927, + BoxArrowLeft=57929, + BoxArrowUp=57931, + BoxCheckmark=57933, + BoxDismiss=57935, + BoxEdit=57937, + BoxMultiple=57939, + BoxMultipleArrowLeft=57941, + BoxMultipleArrowRight=57943, + BoxMultipleCheckmark=57945, + BoxMultipleSearch=57947, + BoxSearch=57949, + BoxToolbox=57951, + Braces=57953, + BracesVariable=57955, + BrainCircuit=57957, + Branch=57959, + BranchCompare=57961, + BranchFork=57963, + BranchForkHint=57965, + BranchForkLink=57967, + BranchRequest=57969, + BreakoutRoom=57971, + Briefcase=57973, + BriefcaseMedical=57975, + BriefcaseOff=57977, + BriefcaseSearch=57979, + BrightnessHigh=57981, + BrightnessLow=57983, + BroadActivityFeed=57985, + Broom=57987, + BubbleMultiple=57989, + Bug=57991, + BugArrowCounterclockwise=57993, + BugProhibited=57995, + Building=57997, + BuildingBank=57999, + BuildingBankLink=58001, + BuildingBankToolbox=58003, + BuildingDesktop=58005, + BuildingFactory=58007, + BuildingGovernment=58009, + BuildingHome=58011, + BuildingLighthouse=58013, + BuildingMosque=58015, + BuildingMultiple=58017, + BuildingPeople=58019, + BuildingRetail=58021, + BuildingRetailMoney=58023, + BuildingRetailMore=58025, + BuildingRetailShield=58027, + BuildingRetailToolbox=58029, + BuildingShop=58031, + BuildingSkyscraper=58033, + BuildingTownhouse=58035, + Button=58037, + Calculator=58039, + CalculatorArrowClockwise=58041, + CalculatorMultiple=58043, + Calendar=58045, + Calendar3Day=58047, + CalendarAdd=58049, + CalendarAgenda=58051, + CalendarArrowCounterclockwise=58053, + CalendarArrowDown=58055, + CalendarArrowRight=58057, + CalendarAssistant=58059, + CalendarCancel=58061, + CalendarChat=58063, + CalendarCheckmark=58065, + CalendarClock=58067, + CalendarDataBar=58069, + CalendarDate=58071, + CalendarDay=58073, + CalendarEdit=58075, + CalendarEmpty=58077, + CalendarError=58079, + CalendarEye=58081, + CalendarInfo=58083, + CalendarLock=58085, + CalendarLtr=58087, + CalendarMail=58089, + CalendarMention=58091, + CalendarMonth=58093, + CalendarMultiple=58095, + CalendarPattern=58097, + CalendarPerson=58099, + CalendarPhone=58101, + CalendarPlay=58103, + CalendarQuestionMark=58105, + CalendarReply=58107, + CalendarRtl=58109, + CalendarSearch=58111, + CalendarSettings=58113, + CalendarShield=58115, + CalendarStar=58117, + CalendarSync=58119, + CalendarToday=58121, + CalendarToolbox=58123, + CalendarWeekNumbers=58125, + CalendarWeekStart=58127, + CalendarWorkWeek=58129, + Call=58131, + CallAdd=58133, + CallCheckmark=58135, + CallConnecting=58137, + CallDismiss=58139, + CallEnd=58141, + CallExclamation=58143, + CallForward=58145, + CallInbound=58147, + CallMissed=58149, + CallOutbound=58151, + CallPark=58153, + CallPause=58155, + CallProhibited=58157, + CallTransfer=58159, + CallWarning=58161, + CalligraphyPen=58163, + CalligraphyPenCheckmark=58165, + CalligraphyPenError=58167, + CalligraphyPenQuestionMark=58169, + Camera=58171, + CameraAdd=58173, + CameraDome=58175, + CameraEdit=58177, + CameraOff=58179, + CameraSparkles=58181, + CameraSwitch=58183, + CardUi=58185, + CaretDown=58187, + CaretDownRight=58189, + CaretLeft=58191, + CaretRight=58193, + CaretUp=58195, + Cart=58197, + Cast=58199, + CastMultiple=58201, + CatchUp=58203, + Cellular3g=58205, + Cellular4g=58207, + Cellular5g=58209, + CellularData1=58211, + CellularData2=58213, + CellularData3=58215, + CellularData4=58217, + CellularData5=58219, + CellularOff=58221, + CellularWarning=58223, + CenterHorizontal=58225, + CenterVertical=58227, + Certificate=58229, + Channel=58231, + ChannelAdd=58233, + ChannelAlert=58235, + ChannelArrowLeft=58237, + ChannelDismiss=58239, + ChannelShare=58241, + ChannelSubtract=58243, + ChartMultiple=58245, + ChartPerson=58247, + Chat=58249, + ChatAdd=58251, + ChatArrowBack=58253, + ChatArrowDoubleBack=58255, + ChatBubblesQuestion=58257, + ChatCursor=58259, + ChatDismiss=58261, + ChatEmpty=58263, + ChatHelp=58265, + ChatMail=58267, + ChatMultiple=58269, + ChatMultipleHeart=58271, + ChatOff=58273, + ChatSettings=58275, + ChatSparkle=58277, + ChatVideo=58279, + ChatWarning=58281, + Check=58283, + Checkbox1=58285, + Checkbox2=58287, + CheckboxArrowRight=58289, + CheckboxChecked=58291, + CheckboxCheckedSync=58293, + CheckboxIndeterminate=58295, + CheckboxPerson=58297, + CheckboxUnchecked=58299, + CheckboxWarning=58301, + Checkmark=58303, + CheckmarkCircle=58305, + CheckmarkCircleSquare=58307, + CheckmarkLock=58309, + CheckmarkNote=58311, + CheckmarkSquare=58313, + CheckmarkStarburst=58315, + CheckmarkUnderlineCircle=58317, + Chess=58319, + ChevronCircleDown=58321, + ChevronCircleLeft=58323, + ChevronCircleRight=58325, + ChevronCircleUp=58327, + ChevronDoubleDown=58329, + ChevronDoubleLeft=58331, + ChevronDoubleRight=58333, + ChevronDoubleUp=58335, + ChevronDown=58337, + ChevronDownUp=58339, + ChevronLeft=58341, + ChevronRight=58343, + ChevronUp=58345, + ChevronUpDown=58347, + Circle=58349, + CircleEdit=58351, + CircleEraser=58353, + CircleHalfFill=58355, + CircleHint=58357, + CircleHintHalfVertical=58359, + CircleImage=58361, + CircleLine=58363, + CircleMultipleSubtractCheckmark=58365, + CircleOff=58367, + CircleSmall=58369, + City=58371, + Class=58373, + Classification=58375, + ClearFormatting=58377, + Clipboard=58379, + Clipboard3Day=58381, + ClipboardArrowRight=58383, + ClipboardBulletList=58385, + ClipboardBulletListLtr=58387, + ClipboardBulletListRtl=58389, + ClipboardCheckmark=58391, + ClipboardClock=58393, + ClipboardCode=58395, + ClipboardDataBar=58397, + ClipboardDay=58399, + ClipboardEdit=58401, + ClipboardError=58403, + ClipboardHeart=58405, + ClipboardImage=58407, + ClipboardLetter=58409, + ClipboardLink=58411, + ClipboardMonth=58413, + ClipboardMore=58415, + ClipboardNote=58417, + ClipboardPaste=58419, + ClipboardPulse=58421, + ClipboardSearch=58423, + ClipboardSettings=58425, + ClipboardTask=58427, + ClipboardTaskAdd=58429, + ClipboardTaskListLtr=58431, + ClipboardTaskListRtl=58433, + ClipboardTextEdit=58435, + ClipboardTextLtr=58437, + ClipboardTextRtl=58439, + Clock=58441, + ClockAlarm=58443, + ClockArrowDownload=58445, + ClockDismiss=58447, + ClockLock=58449, + ClockPause=58451, + ClockToolbox=58453, + ClosedCaption=58455, + ClosedCaptionOff=58457, + Cloud=58459, + CloudAdd=58461, + CloudArchive=58463, + CloudArrowDown=58465, + CloudArrowUp=58467, + CloudBidirectional=58469, + CloudCheckmark=58471, + CloudDatabase=58473, + CloudDesktop=58475, + CloudDismiss=58477, + CloudEdit=58479, + CloudError=58481, + CloudFlow=58483, + CloudLink=58485, + CloudOff=58487, + CloudSwap=58489, + CloudSync=58491, + CloudWords=58493, + Clover=58495, + Code=58497, + CodeBlock=58499, + CodeCircle=58501, + CodeText=58503, + CodeTextEdit=58505, + Collections=58507, + CollectionsAdd=58509, + Color=58511, + ColorBackground=58513, + ColorFill=58516, + ColorLine=58519, + Column=58522, + ColumnArrowRight=58524, + ColumnDoubleCompare=58526, + ColumnEdit=58528, + ColumnSingleCompare=58530, + ColumnTriple=58532, + ColumnTripleEdit=58534, + Comma=58536, + Comment=58538, + CommentAdd=58540, + CommentArrowLeft=58542, + CommentArrowRight=58544, + CommentCheckmark=58546, + CommentDismiss=58548, + CommentEdit=58550, + CommentError=58552, + CommentLightning=58554, + CommentLink=58556, + CommentMention=58558, + CommentMultiple=58560, + CommentMultipleCheckmark=58562, + CommentMultipleLink=58564, + CommentNote=58566, + CommentOff=58568, + Communication=58570, + CommunicationPerson=58572, + CompassNorthwest=58574, + Compose=58576, + ConferenceRoom=58578, + Connected=58580, + Connector=58582, + ContactCard=58584, + ContactCardGroup=58586, + ContactCardLink=58588, + ContactCardRibbon=58590, + ContentSettings=58592, + ContentView=58594, + ContentViewGallery=58596, + ContractDownLeft=58598, + ControlButton=58600, + ConvertRange=58602, + Cookies=58604, + Copy=58606, + CopyAdd=58608, + CopyArrowRight=58610, + CopySelect=58612, + Couch=58614, + CreditCardClock=58616, + CreditCardPerson=58618, + CreditCardToolbox=58620, + Crop=58622, + CropInterim=58624, + CropInterimOff=58626, + Crown=58628, + Cube=58630, + CubeAdd=58632, + CubeArrowCurveDown=58634, + CubeLink=58636, + CubeMultiple=58638, + CubeQuick=58640, + CubeRotate=58642, + CubeSync=58644, + CubeTree=58646, + CurrencyDollarEuro=58648, + CurrencyDollarRupee=58650, + Cursor=58652, + CursorClick=58654, + CursorHover=58656, + CursorHoverOff=58658, + CursorProhibited=58660, + Cut=58662, + DarkTheme=58664, + DataArea=58666, + DataBarHorizontal=58668, + DataBarVertical=58670, + DataBarVerticalAdd=58672, + DataBarVerticalStar=58674, + DataFunnel=58676, + DataHistogram=58678, + DataLine=58680, + DataPie=58682, + DataScatter=58684, + DataSunburst=58686, + DataTreemap=58688, + DataTrending=58690, + DataUsage=58692, + DataUsageEdit=58694, + DataUsageSettings=58696, + DataUsageToolbox=58698, + DataWaterfall=58700, + DataWhisker=58702, + Database=58704, + DatabaseArrowDown=58706, + DatabaseArrowRight=58708, + DatabaseArrowUp=58710, + DatabaseLightning=58712, + DatabaseLink=58714, + DatabaseMultiple=58716, + DatabasePerson=58718, + DatabasePlugConnected=58720, + DatabaseSearch=58722, + DatabaseSwitch=58724, + DatabaseWarning=58726, + DatabaseWindow=58728, + DecimalArrowLeft=58730, + DecimalArrowRight=58732, + Delete=58734, + DeleteArrowBack=58736, + DeleteDismiss=58738, + DeleteLines=58740, + DeleteOff=58742, + Dentist=58744, + DesignIdeas=58746, + Desk=58748, + Desktop=58750, + DesktopArrowDown=58752, + DesktopArrowRight=58754, + DesktopCheckmark=58756, + DesktopCursor=58758, + DesktopEdit=58760, + DesktopFlow=58762, + DesktopKeyboard=58764, + DesktopMac=58766, + DesktopPulse=58768, + DesktopSignal=58770, + DesktopSpeaker=58772, + DesktopSpeakerOff=58774, + DesktopSync=58776, + DesktopToolbox=58778, + DesktopTower=58780, + DeveloperBoard=58782, + DeveloperBoardLightning=58784, + DeveloperBoardLightningToolbox=58786, + DeveloperBoardSearch=58788, + DeviceEq=58790, + DeviceMeetingRoom=58792, + DeviceMeetingRoomRemote=58794, + Diagram=58796, + Dialpad=58798, + DialpadOff=58800, + Diamond=58802, + Directions=58804, + Dishwasher=58806, + Dismiss=58808, + DismissCircle=58810, + DismissSquare=58812, + DismissSquareMultiple=58814, + Diversity=58816, + DividerShort=58818, + DividerTall=58820, + Dock=58822, + DockRow=58824, + Doctor=58826, + Document100=58828, + Document=58830, + DocumentAdd=58832, + DocumentArrowDown=58834, + DocumentArrowLeft=58836, + DocumentArrowRight=58838, + DocumentArrowUp=58840, + DocumentBorder=58842, + DocumentBorderPrint=58844, + DocumentBriefcase=58846, + DocumentBulletList=58848, + DocumentBulletListArrowLeft=58850, + DocumentBulletListClock=58852, + DocumentBulletListCube=58854, + DocumentBulletListMultiple=58856, + DocumentBulletListOff=58858, + DocumentCatchUp=58860, + DocumentCheckmark=58862, + DocumentChevronDouble=58864, + DocumentCopy=58866, + DocumentCss=58868, + DocumentData=58870, + DocumentDataLink=58872, + DocumentDatabase=58874, + DocumentDismiss=58876, + DocumentEdit=58878, + DocumentEndnote=58880, + DocumentError=58882, + DocumentFit=58884, + DocumentFlowchart=58886, + DocumentFolder=58888, + DocumentFooter=58890, + DocumentFooterDismiss=58892, + DocumentHeader=58894, + DocumentHeaderArrowDown=58896, + DocumentHeaderDismiss=58898, + DocumentHeaderFooter=58900, + DocumentHeart=58902, + DocumentHeartPulse=58904, + DocumentImage=58906, + DocumentJava=58908, + DocumentJavascript=58910, + DocumentKey=58912, + DocumentLandscape=58914, + DocumentLandscapeData=58916, + DocumentLandscapeSplit=58918, + DocumentLandscapeSplitHint=58920, + DocumentLink=58922, + DocumentLock=58924, + DocumentMargins=58926, + DocumentMention=58928, + DocumentMultiple=58930, + DocumentMultiplePercent=58932, + DocumentMultipleProhibited=58934, + DocumentMultipleSync=58936, + DocumentOnePage=58938, + DocumentOnePageAdd=58940, + DocumentOnePageColumns=58942, + DocumentOnePageLink=58944, + DocumentOnePageMultiple=58946, + DocumentOnePageSparkle=58948, + DocumentPageBottomCenter=58950, + DocumentPageBottomLeft=58952, + DocumentPageBottomRight=58954, + DocumentPageBreak=58956, + DocumentPageNumber=58958, + DocumentPageTopCenter=58960, + DocumentPageTopLeft=58962, + DocumentPageTopRight=58964, + DocumentPdf=58966, + DocumentPercent=58968, + DocumentPerson=58970, + DocumentPill=58972, + DocumentPrint=58974, + DocumentProhibited=58976, + DocumentQuestionMark=58978, + DocumentQueue=58980, + DocumentQueueAdd=58982, + DocumentQueueMultiple=58984, + DocumentRibbon=58986, + DocumentSass=58988, + DocumentSave=58990, + DocumentSearch=58992, + DocumentSettings=58994, + DocumentSplitHint=58996, + DocumentSplitHintOff=58998, + DocumentSync=59000, + DocumentTable=59002, + DocumentTableArrowRight=59004, + DocumentTableCheckmark=59006, + DocumentTableCube=59008, + DocumentTableSearch=59010, + DocumentTableTruck=59012, + DocumentText=59014, + DocumentTextClock=59016, + DocumentTextExtract=59018, + DocumentTextLink=59020, + DocumentTextToolbox=59022, + DocumentToolbox=59024, + DocumentWidth=59026, + DocumentYml=59028, + Door=59030, + DoorArrowLeft=59032, + DoorArrowRight=59034, + DoorTag=59036, + DoubleSwipeDown=59038, + DoubleSwipeUp=59040, + DoubleTapSwipeDown=59042, + DoubleTapSwipeUp=59044, + Drafts=59046, + Drag=59048, + DrawImage=59050, + DrawShape=59052, + DrawText=59054, + DrawerAdd=59056, + DrawerArrowDownload=59058, + DrawerDismiss=59060, + DrawerPlay=59062, + DrawerSubtract=59064, + DrinkBeer=59066, + DrinkBottle=59068, + DrinkBottleOff=59070, + DrinkCoffee=59072, + DrinkMargarita=59074, + DrinkToGo=59076, + DrinkWine=59078, + DriveTrain=59080, + Drop=59082, + DualScreen=59084, + DualScreenAdd=59086, + DualScreenArrowRight=59088, + DualScreenArrowUp=59090, + DualScreenClock=59092, + DualScreenClosedAlert=59094, + DualScreenDesktop=59096, + DualScreenDismiss=59098, + DualScreenGroup=59100, + DualScreenHeader=59102, + DualScreenLock=59104, + DualScreenMirror=59106, + DualScreenPagination=59108, + DualScreenSettings=59110, + DualScreenSpan=59112, + DualScreenSpeaker=59114, + DualScreenStatusBar=59116, + DualScreenTablet=59118, + DualScreenUpdate=59120, + DualScreenVerticalScroll=59122, + DualScreenVibrate=59124, + Dumbbell=59126, + Dust=59128, + Earth=59130, + EarthLeaf=59132, + Edit=59134, + EditArrowBack=59136, + EditOff=59138, + EditProhibited=59140, + EditSettings=59142, + Elevator=59144, + Emoji=59146, + EmojiAdd=59148, + EmojiAngry=59150, + EmojiEdit=59152, + EmojiHand=59154, + EmojiHint=59156, + EmojiLaugh=59158, + EmojiMeh=59160, + EmojiMultiple=59162, + EmojiSad=59164, + EmojiSadSlight=59166, + EmojiSmileSlight=59168, + EmojiSparkle=59170, + EmojiSurprise=59172, + Engine=59174, + EqualCircle=59176, + EqualOff=59178, + Eraser=59180, + EraserMedium=59182, + EraserSegment=59184, + EraserSmall=59186, + EraserTool=59188, + ErrorCircle=59190, + ErrorCircleSettings=59192, + ExpandUpLeft=59194, + ExpandUpRight=59196, + ExtendedDock=59198, + Eye=59200, + EyeLines=59202, + EyeOff=59204, + EyeTracking=59206, + EyeTrackingOff=59208, + Eyedropper=59210, + EyedropperOff=59212, + FStop=59214, + FastAcceleration=59216, + FastForward=59218, + Fax=59220, + Feed=59222, + Filmstrip=59224, + FilmstripPlay=59226, + FilmstripSplit=59228, + Filter=59230, + FilterAdd=59232, + FilterDismiss=59234, + FilterSync=59236, + Fingerprint=59238, + Fire=59240, + Fireplace=59242, + FixedWidth=59244, + Flag=59246, + FlagCheckered=59248, + FlagClock=59250, + FlagOff=59252, + FlagPride=59254, + FlagPrideIntersexInclusiveProgress=59255, + FlagPridePhiladelphia=59256, + FlagPrideProgress=59257, + Flash=59258, + FlashAdd=59260, + FlashAuto=59262, + FlashCheckmark=59264, + FlashFlow=59266, + FlashOff=59268, + FlashPlay=59270, + FlashSettings=59272, + FlashSparkle=59274, + Flashlight=59276, + FlashlightOff=59278, + FlipHorizontal=59280, + FlipVertical=59282, + Flow=59284, + Flowchart=59286, + FlowchartCircle=59288, + Fluent=59290, + Fluid=59292, + Folder=59294, + FolderAdd=59296, + FolderArrowLeft=59298, + FolderArrowRight=59300, + FolderArrowUp=59302, + FolderBriefcase=59304, + FolderGlobe=59306, + FolderLightning=59308, + FolderLink=59310, + FolderList=59312, + FolderMail=59314, + FolderOpen=59316, + FolderOpenVertical=59318, + FolderPeople=59320, + FolderPerson=59322, + FolderProhibited=59324, + FolderSwap=59326, + FolderSync=59328, + FolderZip=59330, + FontDecrease=59332, + FontIncrease=59334, + FontSpaceTrackingIn=59336, + FontSpaceTrackingOut=59338, + Food=59340, + FoodApple=59342, + FoodCake=59344, + FoodCarrot=59346, + FoodChickenLeg=59348, + FoodEgg=59350, + FoodFish=59352, + FoodGrains=59354, + FoodPizza=59356, + FoodToast=59358, + Form=59360, + FormMultiple=59362, + FormNew=59364, + Fps120=59366, + Fps240=59368, + Fps30=59370, + Fps60=59372, + Fps960=59374, + Frame=59376, + FullScreenMaximize=59378, + FullScreenMinimize=59380, + Games=59382, + GanttChart=59384, + Gas=59386, + GasPump=59388, + Gather=59390, + Gauge=59392, + GaugeAdd=59394, + Gavel=59396, + GavelProhibited=59398, + Gesture=59400, + Gif=59402, + Gift=59404, + GiftCard=59406, + GiftCardAdd=59408, + GiftCardArrowRight=59410, + GiftCardMoney=59412, + GiftCardMultiple=59414, + GiftOpen=59416, + Glance=59418, + GlanceHorizontal=59420, + Glasses=59422, + GlassesOff=59424, + Globe=59426, + GlobeAdd=59428, + GlobeClock=59430, + GlobeDesktop=59432, + GlobeLocation=59434, + GlobePerson=59436, + GlobeProhibited=59438, + GlobeSearch=59440, + GlobeShield=59442, + GlobeStar=59444, + GlobeSurface=59446, + GlobeVideo=59448, + Grid=59450, + GridDots=59452, + GridKanban=59454, + Group=59456, + GroupDismiss=59458, + GroupList=59460, + GroupReturn=59462, + Guardian=59464, + Guest=59466, + GuestAdd=59468, + Guitar=59470, + HandDraw=59472, + HandLeft=59474, + HandLeftChat=59476, + HandOpenHeart=59478, + HandRight=59480, + HandRightOff=59482, + HandWave=59484, + Handshake=59486, + HardDrive=59488, + HatGraduation=59490, + HatGraduationSparkle=59492, + Hd=59494, + Hdr=59496, + HdrOff=59498, + Headphones=59500, + HeadphonesSoundWave=59502, + Headset=59504, + HeadsetAdd=59506, + HeadsetVr=59508, + Heart=59510, + HeartBroken=59512, + HeartCircle=59514, + HeartCircleHint=59516, + HeartOff=59518, + HeartPulse=59520, + HeartPulseCheckmark=59522, + HeartPulseError=59524, + HeartPulseWarning=59526, + Hexagon=59528, + HexagonThree=59530, + Highlight=59532, + HighlightAccent=59534, + HighlightLink=59535, + History=59537, + HistoryDismiss=59539, + Home=59541, + HomeAdd=59543, + HomeCheckmark=59545, + HomeDatabase=59547, + HomeHeart=59549, + HomeMore=59551, + HomePerson=59553, + HomeSplit=59555, + Hourglass=59557, + HourglassHalf=59559, + HourglassOneQuarter=59561, + HourglassThreeQuarter=59563, + Icons=59565, + Image=59567, + ImageAdd=59569, + ImageAltText=59571, + ImageArrowBack=59573, + ImageArrowCounterclockwise=59575, + ImageArrowForward=59577, + ImageBorder=59579, + ImageCircle=59581, + ImageCopy=59583, + ImageEdit=59585, + ImageGlobe=59587, + ImageMultiple=59589, + ImageMultipleOff=59591, + ImageOff=59593, + ImageProhibited=59595, + ImageReflection=59597, + ImageSearch=59599, + ImageShadow=59601, + ImageSparkle=59603, + ImageStack=59605, + ImageTable=59607, + ImmersiveReader=59609, + Important=59611, + Incognito=59613, + Info=59615, + InfoShield=59617, + InkStroke=59619, + InkStrokeArrowDown=59621, + InkStrokeArrowUpDown=59623, + InkingTool=59625, + InkingToolAccent=59627, + InprivateAccount=59628, + Insert=59630, + IosChevronRight=59632, + Iot=59634, + IotAlert=59636, + Javascript=59638, + Joystick=59640, + Key=59642, + KeyCommand=59644, + KeyMultiple=59646, + KeyReset=59648, + Keyboard123=59650, + Keyboard=59652, + KeyboardDock=59654, + KeyboardLayoutFloat=59656, + KeyboardLayoutOneHandedLeft=59658, + KeyboardLayoutResize=59660, + KeyboardLayoutSplit=59662, + KeyboardShift=59664, + KeyboardShiftUppercase=59666, + KeyboardTab=59668, + Laptop=59670, + LaptopDismiss=59672, + LaptopShield=59674, + LaserTool=59676, + Lasso=59678, + LauncherSettings=59680, + Layer=59682, + LayerDiagonal=59684, + LayerDiagonalPerson=59686, + LeafOne=59688, + LeafThree=59690, + LeafTwo=59692, + LearningApp=59694, + Library=59696, + Lightbulb=59698, + LightbulbCheckmark=59700, + LightbulbCircle=59702, + LightbulbFilament=59704, + LightbulbPerson=59706, + Likert=59708, + Line=59710, + LineDashes=59712, + LineHorizontal1=59714, + LineHorizontal1Dashes=59716, + LineHorizontal2DashesSolid=59718, + LineHorizontal3=59720, + LineHorizontal4=59722, + LineHorizontal4Search=59724, + LineHorizontal5=59726, + LineHorizontal5Error=59728, + LineStyle=59730, + LineThickness=59732, + Link=59734, + LinkDismiss=59736, + LinkEdit=59738, + LinkMultiple=59740, + LinkSquare=59742, + LinkToolbox=59744, + List=59746, + ListBar=59748, + ListBarTree=59750, + ListBarTreeOffset=59752, + ListRtl=59754, + Live=59756, + LiveOff=59758, + LocalLanguage=59760, + Location=59762, + LocationAdd=59764, + LocationAddLeft=59766, + LocationAddRight=59768, + LocationAddUp=59770, + LocationArrow=59772, + LocationArrowLeft=59774, + LocationArrowRight=59776, + LocationArrowUp=59778, + LocationDismiss=59780, + LocationLive=59782, + LocationOff=59784, + LockClosed=59786, + LockClosedKey=59788, + LockMultiple=59790, + LockOpen=59792, + LockShield=59794, + Lottery=59796, + Luggage=59798, + Mail=59800, + MailAdd=59802, + MailAlert=59804, + MailAllRead=59806, + MailAllUnread=59808, + MailArrowDoubleBack=59810, + MailArrowDown=59812, + MailArrowForward=59814, + MailArrowUp=59816, + MailAttach=59818, + MailCheckmark=59820, + MailClock=59822, + MailCopy=59824, + MailDismiss=59826, + MailEdit=59828, + MailError=59830, + MailInbox=59832, + MailInboxAdd=59834, + MailInboxAll=59836, + MailInboxArrowDown=59838, + MailInboxArrowRight=59840, + MailInboxArrowUp=59842, + MailInboxCheckmark=59844, + MailInboxDismiss=59846, + MailLink=59848, + MailList=59850, + MailMultiple=59852, + MailOff=59854, + MailOpenPerson=59856, + MailPause=59858, + MailProhibited=59860, + MailRead=59862, + MailReadMultiple=59864, + MailSettings=59866, + MailShield=59868, + MailTemplate=59870, + MailUnread=59872, + MailWarning=59874, + Map=59876, + MapDrive=59878, + Markdown=59880, + MatchAppLayout=59882, + MathFormatLinear=59884, + MathFormatProfessional=59886, + MathFormula=59888, + MathSymbols=59890, + Maximize=59892, + MeetNow=59894, + Megaphone=59896, + MegaphoneCircle=59898, + MegaphoneLoud=59900, + MegaphoneOff=59902, + Mention=59904, + MentionArrowDown=59906, + MentionBrackets=59908, + Merge=59910, + Mic=59912, + MicOff=59914, + MicProhibited=59916, + MicPulse=59918, + MicPulseOff=59920, + MicRecord=59922, + MicSettings=59924, + MicSparkle=59926, + MicSync=59928, + Microscope=59930, + Midi=59932, + MobileOptimized=59934, + Mold=59936, + Molecule=59938, + Money=59940, + MoneyCalculator=59942, + MoneyDismiss=59944, + MoneyHand=59946, + MoneyOff=59948, + MoneySettings=59950, + MoreCircle=59952, + MoreHorizontal=59954, + MoreVertical=59956, + MountainLocationBottom=59958, + MountainLocationTop=59960, + MountainTrail=59962, + MoviesAndTv=59964, + Multiplier12x=59966, + Multiplier15x=59968, + Multiplier18x=59970, + Multiplier1x=59972, + Multiplier2x=59974, + Multiplier5x=59976, + MultiselectLtr=59978, + MultiselectRtl=59980, + MusicNote1=59982, + MusicNote2=59984, + MusicNote2Play=59986, + MusicNoteOff1=59988, + MusicNoteOff2=59990, + MyLocation=59992, + Navigation=59994, + NavigationLocationTarget=59996, + NavigationPlay=59998, + NavigationUnread=60000, + NetworkCheck=60002, + New=60004, + News=60006, + Next=60008, + NextFrame=60010, + Note=60012, + NoteAdd=60014, + NoteEdit=60016, + NotePin=60018, + Notebook=60020, + NotebookAdd=60022, + NotebookArrowCurveDown=60024, + NotebookError=60026, + NotebookEye=60028, + NotebookLightning=60030, + NotebookQuestionMark=60032, + NotebookSection=60034, + NotebookSectionArrowRight=60036, + NotebookSubsection=60038, + NotebookSync=60040, + Notepad=60042, + NotepadEdit=60044, + NotepadPerson=60046, + NumberCircle1=60048, + NumberCircle2=60050, + NumberCircle3=60052, + NumberCircle4=60054, + NumberCircle5=60056, + NumberRow=60058, + NumberSymbol=60060, + NumberSymbolDismiss=60062, + NumberSymbolSquare=60064, + Open=60066, + OpenFolder=60068, + OpenOff=60070, + Options=60072, + Organization=60074, + OrganizationHorizontal=60076, + Orientation=60078, + Oval=60080, + Oven=60082, + PaddingDown=60084, + PaddingLeft=60086, + PaddingRight=60088, + PaddingTop=60090, + PageFit=60092, + PaintBrush=60094, + PaintBrushArrowDown=60096, + PaintBrushArrowUp=60098, + PaintBucket=60100, + Pair=60102, + PanelBottom=60104, + PanelBottomContract=60106, + PanelBottomExpand=60108, + PanelLeft=60110, + PanelLeftAdd=60112, + PanelLeftContract=60114, + PanelLeftExpand=60116, + PanelLeftFocusRight=60118, + PanelLeftHeader=60119, + PanelLeftHeaderAdd=60121, + PanelLeftHeaderKey=60123, + PanelLeftKey=60125, + PanelLeftText=60127, + PanelLeftTextAdd=60129, + PanelLeftTextDismiss=60131, + PanelRight=60133, + PanelRightAdd=60135, + PanelRightContract=60137, + PanelRightCursor=60139, + PanelRightExpand=60141, + PanelSeparateWindow=60143, + PanelTopContract=60145, + PanelTopExpand=60147, + Password=60149, + Patch=60151, + Patient=60153, + Pause=60155, + PauseCircle=60157, + PauseOff=60159, + PauseSettings=60161, + Payment=60163, + Pen=60165, + PenDismiss=60167, + PenOff=60169, + PenProhibited=60171, + PenSparkle=60173, + Pentagon=60175, + People=60177, + PeopleAdd=60179, + PeopleAudience=60181, + PeopleCall=60183, + PeopleCheckmark=60185, + PeopleCommunity=60187, + PeopleCommunityAdd=60189, + PeopleEdit=60191, + PeopleError=60193, + PeopleList=60195, + PeopleLock=60197, + PeopleMoney=60199, + PeopleProhibited=60201, + PeopleQueue=60203, + PeopleSearch=60205, + PeopleSettings=60207, + PeopleStar=60209, + PeopleSwap=60211, + PeopleSync=60213, + PeopleTeam=60215, + PeopleTeamAdd=60217, + PeopleTeamDelete=60219, + PeopleTeamToolbox=60221, + PeopleToolbox=60223, + Person=60225, + Person5=60227, + Person6=60229, + PersonAccounts=60231, + PersonAdd=60233, + PersonAlert=60235, + PersonArrowBack=60237, + PersonArrowLeft=60239, + PersonArrowRight=60241, + PersonAvailable=60243, + PersonBoard=60245, + PersonCall=60247, + PersonChat=60249, + PersonCircle=60251, + PersonClock=60253, + PersonDelete=60255, + PersonDesktop=60257, + PersonEdit=60259, + PersonFeedback=60261, + PersonHeart=60263, + PersonInfo=60265, + PersonKey=60267, + PersonLightbulb=60269, + PersonLightning=60271, + PersonLink=60273, + PersonLock=60275, + PersonMail=60277, + PersonMoney=60279, + PersonNote=60281, + PersonPill=60283, + PersonProhibited=60285, + PersonQuestionMark=60287, + PersonRibbon=60289, + PersonRunning=60291, + PersonSearch=60293, + PersonSettings=60295, + PersonSquare=60297, + PersonStar=60299, + PersonStarburst=60301, + PersonSubtract=60303, + PersonSupport=60305, + PersonSwap=60307, + PersonSync=60309, + PersonTag=60311, + PersonVoice=60313, + PersonWalking=60315, + PersonWrench=60317, + Phone=60319, + PhoneAdd=60321, + PhoneArrowRight=60323, + PhoneChat=60325, + PhoneCheckmark=60327, + PhoneDesktop=60329, + PhoneDesktopAdd=60331, + PhoneDismiss=60333, + PhoneEdit=60335, + PhoneEraser=60337, + PhoneKey=60339, + PhoneLaptop=60341, + PhoneLinkSetup=60343, + PhoneLock=60345, + PhonePageHeader=60347, + PhonePagination=60349, + PhoneScreenTime=60351, + PhoneShake=60353, + PhoneSpanIn=60355, + PhoneSpanOut=60357, + PhoneSpeaker=60359, + PhoneStatusBar=60361, + PhoneTablet=60363, + PhoneUpdate=60365, + PhoneUpdateCheckmark=60367, + PhoneVerticalScroll=60369, + PhoneVibrate=60371, + PhotoFilter=60373, + Pi=60375, + PictureInPicture=60377, + PictureInPictureEnter=60379, + PictureInPictureExit=60381, + Pill=60383, + Pin=60385, + PinOff=60387, + Pipeline=60389, + PipelineAdd=60391, + PipelineArrowCurveDown=60393, + PipelinePlay=60395, + Pivot=60397, + PlantGrass=60399, + PlantRagweed=60401, + Play=60403, + PlayCircle=60405, + PlayCircleHint=60407, + PlaySettings=60409, + PlayingCards=60411, + PlugConnected=60413, + PlugConnectedAdd=60415, + PlugConnectedCheckmark=60417, + PlugConnectedSettings=60419, + PlugDisconnected=60421, + PointScan=60423, + Poll=60425, + PollHorizontal=60427, + PortHdmi=60429, + PortMicroUsb=60431, + PortUsbA=60433, + PortUsbC=60435, + PositionBackward=60437, + PositionForward=60439, + PositionToBack=60441, + PositionToFront=60443, + Power=60445, + Predictions=60447, + Premium=60449, + PremiumPerson=60451, + PresenceAvailable=60453, + PresenceAway=60455, + PresenceBusy=60458, + PresenceDnd=60459, + Presenter=60464, + PresenterOff=60466, + PreviewLink=60468, + Previous=60470, + PreviousFrame=60472, + Print=60474, + PrintAdd=60476, + Production=60478, + ProductionCheckmark=60480, + Prohibited=60482, + ProhibitedMultiple=60484, + ProhibitedNote=60486, + ProjectionScreen=60488, + ProjectionScreenDismiss=60490, + ProtocolHandler=60492, + Pulse=60494, + PulseSquare=60496, + PuzzleCube=60498, + PuzzleCubePiece=60500, + PuzzlePiece=60502, + PuzzlePieceShield=60504, + QrCode=60506, + Question=60508, + QuestionCircle=60510, + QuizNew=60512, + Radar=60514, + RadarCheckmark=60516, + RadarRectangleMultiple=60518, + RadioButton=60520, + Ram=60522, + RatingMature=60524, + RatioOneToOne=60526, + ReOrder=60528, + ReOrderDotsHorizontal=60530, + ReOrderDotsVertical=60532, + ReadAloud=60534, + ReadingList=60536, + ReadingListAdd=60538, + ReadingModeMobile=60540, + RealEstate=60542, + Receipt=60544, + ReceiptAdd=60546, + ReceiptBag=60548, + ReceiptCube=60550, + ReceiptMoney=60552, + ReceiptPlay=60554, + ReceiptSearch=60556, + ReceiptSparkles=60558, + Record=60560, + RecordStop=60562, + RectangleLandscape=60564, + RectangleLandscapeHintCopy=60566, + RectanglePortraitLocationTarget=60568, + Recycle=60570, + RemixAdd=60572, + Remote=60574, + Rename=60576, + Reorder=60578, + Replay=60580, + Resize=60582, + ResizeImage=60584, + ResizeLarge=60586, + ResizeSmall=60588, + ResizeTable=60590, + ResizeVideo=60592, + Reward=60594, + Rewind=60596, + Rhombus=60598, + Ribbon=60600, + RibbonAdd=60602, + RibbonOff=60604, + RibbonStar=60606, + RoadCone=60608, + Rocket=60610, + RotateLeft=60612, + RotateRight=60614, + Router=60616, + RowTriple=60618, + Rss=60620, + Ruler=60622, + Run=60624, + Sanitize=60626, + Save=60628, + SaveArrowRight=60630, + SaveCopy=60632, + SaveEdit=60634, + SaveImage=60636, + SaveMultiple=60638, + SaveSearch=60640, + SaveSync=60642, + Savings=60644, + ScaleFill=60646, + ScaleFit=60648, + Scales=60650, + Scan=60652, + ScanCamera=60654, + ScanDash=60656, + ScanObject=60658, + ScanTable=60660, + ScanText=60662, + ScanThumbUp=60664, + ScanThumbUpOff=60666, + ScanType=60668, + ScanTypeCheckmark=60670, + ScanTypeOff=60672, + Scratchpad=60674, + ScreenCut=60676, + ScreenPerson=60678, + ScreenSearch=60680, + Screenshot=60682, + Script=60684, + Search=60686, + SearchInfo=60688, + SearchSettings=60690, + SearchShield=60692, + SearchSquare=60694, + SearchVisual=60696, + SelectAllOff=60698, + SelectAllOn=60700, + SelectObject=60702, + SelectObjectSkew=60704, + SelectObjectSkewDismiss=60706, + SelectObjectSkewEdit=60708, + Send=60710, + SendBeaker=60712, + SendClock=60714, + SendCopy=60716, + SerialPort=60718, + Server=60720, + ServerMultiple=60722, + ServerPlay=60724, + ServiceBell=60726, + Settings=60728, + SettingsChat=60730, + SettingsCogMultiple=60732, + ShapeExclude=60734, + ShapeIntersect=60736, + ShapeSubtract=60738, + ShapeUnion=60740, + Shapes=60742, + Share=60744, + ShareAndroid=60746, + ShareCloseTray=60748, + ShareIos=60750, + ShareScreenPerson=60752, + ShareScreenPersonOverlay=60754, + ShareScreenPersonOverlayInside=60756, + ShareScreenPersonP=60758, + ShareScreenStart=60760, + ShareScreenStop=60762, + Shield=60764, + ShieldAdd=60766, + ShieldBadge=60768, + ShieldCheckmark=60770, + ShieldDismiss=60772, + ShieldDismissShield=60774, + ShieldError=60776, + ShieldGlobe=60778, + ShieldKeyhole=60780, + ShieldLock=60782, + ShieldPerson=60784, + ShieldPersonAdd=60786, + ShieldProhibited=60788, + ShieldQuestion=60790, + ShieldTask=60792, + Shifts=60794, + Shifts30Minutes=60796, + ShiftsActivity=60798, + ShiftsAdd=60800, + ShiftsAvailability=60802, + ShiftsCheckmark=60804, + ShiftsDay=60806, + ShiftsOpen=60808, + ShiftsProhibited=60810, + ShiftsQuestionMark=60812, + ShiftsTeam=60814, + ShoppingBag=60816, + ShoppingBagArrowLeft=60818, + ShoppingBagDismiss=60820, + ShoppingBagPause=60822, + ShoppingBagPercent=60824, + ShoppingBagPlay=60826, + ShoppingBagTag=60828, + Shortpick=60830, + Showerhead=60832, + SidebarSearchLtr=60834, + SidebarSearchRtl=60836, + SignOut=60838, + Signature=60840, + Sim=60842, + SkipBack10=60844, + SkipForward10=60846, + SkipForward30=60848, + SkipForwardTab=60850, + SlashForward=60852, + Sleep=60854, + SlideAdd=60856, + SlideArrowRight=60858, + SlideEraser=60860, + SlideGrid=60862, + SlideHide=60864, + SlideLayout=60866, + SlideLink=60868, + SlideMicrophone=60870, + SlideMultiple=60872, + SlideMultipleArrowRight=60874, + SlideMultipleSearch=60876, + SlideRecord=60878, + SlideSearch=60880, + SlideSettings=60882, + SlideSize=60884, + SlideText=60886, + SlideTextMultiple=60888, + SlideTextPerson=60890, + SlideTextSparkle=60892, + SlideTransition=60894, + Smartwatch=60896, + SmartwatchDot=60898, + Snooze=60900, + SoundSource=60902, + SoundWaveCircle=60904, + Space3d=60906, + Spacebar=60908, + Sparkle=60910, + SparkleCircle=60912, + Speaker0=60914, + Speaker1=60916, + Speaker2=60918, + SpeakerBluetooth=60920, + SpeakerEdit=60922, + SpeakerMute=60924, + SpeakerOff=60926, + SpeakerSettings=60928, + SpeakerUsb=60930, + SpinnerIos=60932, + SplitHint=60934, + SplitHorizontal=60936, + SplitVertical=60938, + Sport=60940, + SportAmericanFootball=60942, + SportBaseball=60944, + SportBasketball=60946, + SportHockey=60948, + SportSoccer=60950, + Square=60952, + SquareAdd=60954, + SquareArrowForward=60956, + SquareDismiss=60958, + SquareEraser=60960, + SquareHint=60962, + SquareHintApps=60964, + SquareHintArrowBack=60966, + SquareHintSparkles=60968, + SquareMultiple=60970, + SquareShadow=60972, + SquaresNested=60974, + Stack=60976, + StackAdd=60978, + StackArrowForward=60980, + StackStar=60982, + StackVertical=60984, + Star=60986, + StarAdd=60988, + StarArrowBack=60990, + StarArrowRightEnd=60992, + StarArrowRightStart=60994, + StarCheckmark=60996, + StarDismiss=60998, + StarEdit=61000, + StarEmphasis=61002, + StarHalf=61004, + StarLineHorizontal3=61006, + StarOff=61008, + StarOneQuarter=61010, + StarProhibited=61012, + StarSettings=61014, + StarThreeQuarter=61016, + Status=61018, + Steps=61020, + Stethoscope=61022, + Sticker=61024, + StickerAdd=61026, + Stop=61028, + Storage=61030, + StoreMicrosoft=61032, + Stream=61034, + StreamInput=61036, + StreamInputOutput=61038, + StreamOutput=61040, + StyleGuide=61042, + SubGrid=61044, + Subtitles=61046, + Subtract=61048, + SubtractCircle=61050, + SubtractCircleArrowBack=61052, + SubtractCircleArrowForward=61054, + SubtractSquare=61056, + SubtractSquareMultiple=61058, + SurfaceEarbuds=61060, + SurfaceHub=61062, + SwimmingPool=61064, + SwipeDown=61066, + SwipeRight=61068, + SwipeUp=61070, + Symbols=61072, + SyncOff=61074, + Syringe=61076, + System=61078, + Tab=61080, + TabAdd=61082, + TabArrowLeft=61084, + TabDesktop=61086, + TabDesktopArrowClockwise=61088, + TabDesktopArrowLeft=61090, + TabDesktopBottom=61092, + TabDesktopClock=61094, + TabDesktopCopy=61096, + TabDesktopImage=61098, + TabDesktopLink=61100, + TabDesktopMultiple=61102, + TabDesktopMultipleBottom=61104, + TabDesktopNewPage=61106, + TabInPrivate=61108, + TabInprivateAccount=61110, + TabProhibited=61112, + TabShieldDismiss=61114, + Table=61116, + TableAdd=61118, + TableArrowUp=61120, + TableBottomRow=61122, + TableCalculator=61124, + TableCellEdit=61126, + TableCellsMerge=61128, + TableCellsSplit=61130, + TableChecker=61132, + TableColumnTopBottom=61134, + TableCopy=61136, + TableDeleteColumn=61138, + TableDeleteRow=61140, + TableDismiss=61142, + TableEdit=61144, + TableFreezeColumn=61146, + TableFreezeColumnAndRow=61148, + TableFreezeRow=61150, + TableImage=61152, + TableInsertColumn=61154, + TableInsertRow=61156, + TableLightning=61158, + TableLink=61160, + TableLock=61162, + TableMoveAbove=61164, + TableMoveBelow=61166, + TableMoveLeft=61168, + TableMoveRight=61170, + TableMultiple=61172, + TableOffset=61174, + TableOffsetAdd=61176, + TableOffsetLessThanOrEqualTo=61178, + TableOffsetSettings=61180, + TableResizeColumn=61182, + TableResizeRow=61184, + TableSearch=61186, + TableSettings=61188, + TableSimple=61190, + TableSimpleCheckmark=61192, + TableSimpleExclude=61194, + TableSimpleInclude=61196, + TableSimpleMultiple=61198, + TableSplit=61200, + TableStackAbove=61202, + TableStackBelow=61204, + TableStackLeft=61206, + TableStackRight=61208, + TableSwitch=61210, + Tablet=61212, + TabletLaptop=61214, + TabletSpeaker=61216, + Tabs=61218, + Tag=61220, + TagCircle=61222, + TagDismiss=61224, + TagError=61226, + TagLock=61228, + TagLockAccent=61230, + TagMultiple=61231, + TagOff=61233, + TagQuestionMark=61235, + TagReset=61237, + TagSearch=61239, + TapDouble=61241, + TapSingle=61243, + Target=61245, + TargetArrow=61247, + TargetEdit=61249, + TaskListAdd=61251, + TaskListLtr=61253, + TaskListRtl=61255, + TaskListSquareAdd=61257, + TaskListSquareDatabase=61259, + TaskListSquareLtr=61261, + TaskListSquarePerson=61263, + TaskListSquareRtl=61265, + TaskListSquareSettings=61267, + TasksApp=61269, + Teddy=61271, + Temperature=61273, + Tent=61275, + TetrisApp=61277, + TextAdd=61279, + TextAddSpaceAfter=61281, + TextAddSpaceBefore=61283, + TextAddT=61285, + TextAlignCenter=61287, + TextAlignCenterRotate270=61289, + TextAlignCenterRotate90=61291, + TextAlignDistributed=61293, + TextAlignDistributedEvenly=61295, + TextAlignDistributedVertical=61297, + TextAlignJustify=61299, + TextAlignJustifyLow=61301, + TextAlignJustifyLow90=61303, + TextAlignJustifyLowRotate270=61305, + TextAlignJustifyLowRotate90=61307, + TextAlignJustifyRotate270=61309, + TextAlignJustifyRotate90=61311, + TextAlignLeft=61313, + TextAlignLeftRotate270=61315, + TextAlignLeftRotate90=61317, + TextAlignRight=61319, + TextAlignRightRotate270=61321, + TextAlignRightRotate90=61323, + TextAsterisk=61325, + TextBaseline=61327, + TextBold=61329, + TextBoxSettings=61331, + TextBulletList=61333, + TextBulletList90=61335, + TextBulletListAdd=61337, + TextBulletListCheckmark=61339, + TextBulletListDismiss=61341, + TextBulletListLtr=61343, + TextBulletListLtr90=61345, + TextBulletListRtl=61347, + TextBulletListRtl90=61349, + TextBulletListSquare=61351, + TextBulletListSquareClock=61353, + TextBulletListSquareEdit=61355, + TextBulletListSquarePerson=61357, + TextBulletListSquareSearch=61359, + TextBulletListSquareSettings=61361, + TextBulletListSquareShield=61363, + TextBulletListSquareSparkle=61365, + TextBulletListSquareToolbox=61367, + TextBulletListSquareWarning=61369, + TextBulletListTree=61371, + TextCaseLowercase=61373, + TextCaseTitle=61375, + TextCaseUppercase=61377, + TextChangeCase=61379, + TextClearFormatting=61381, + TextCollapse=61383, + TextColor=61385, + TextColorAccent=61387, + TextColumnOne=61388, + TextColumnOneNarrow=61390, + TextColumnOneSemiNarrow=61392, + TextColumnOneWide=61394, + TextColumnOneWideLightning=61396, + TextColumnThree=61398, + TextColumnTwo=61400, + TextColumnTwoLeft=61402, + TextColumnTwoRight=61404, + TextColumnWide=61406, + TextContinuous=61408, + TextDensity=61410, + TextDescription=61412, + TextDescriptionLtr=61414, + TextDescriptionRtl=61416, + TextDirectionHorizontalLeft=61418, + TextDirectionHorizontalLtr=61420, + TextDirectionHorizontalRight=61422, + TextDirectionHorizontalRtl=61424, + TextDirectionRotate270Right=61426, + TextDirectionRotate315Right=61428, + TextDirectionRotate45Right=61430, + TextDirectionRotate90Left=61432, + TextDirectionRotate90Ltr=61434, + TextDirectionRotate90Right=61436, + TextDirectionRotate90Rtl=61438, + TextDirectionVertical=61440, + TextEditStyle=61442, + TextEffects=61444, + TextExpand=61446, + TextField=61448, + TextFirstLine=61450, + TextFont=61452, + TextFontInfo=61454, + TextFontSize=61456, + TextFootnote=61458, + TextGrammarArrowLeft=61460, + TextGrammarArrowRight=61462, + TextGrammarCheckmark=61464, + TextGrammarDismiss=61466, + TextGrammarError=61468, + TextGrammarSettings=61470, + TextGrammarWand=61472, + TextHanging=61474, + TextHeader1=61476, + TextHeader2=61478, + TextHeader3=61480, + TextIndentDecrease=61482, + TextIndentDecreaseLtr=61484, + TextIndentDecreaseLtr90=61486, + TextIndentDecreaseLtrRotate270=61488, + TextIndentDecreaseRotate270=61490, + TextIndentDecreaseRotate90=61492, + TextIndentDecreaseRtl=61494, + TextIndentDecreaseRtl90=61496, + TextIndentDecreaseRtlRotate270=61498, + TextIndentIncrease=61500, + TextIndentIncreaseLtr=61502, + TextIndentIncreaseLtr90=61504, + TextIndentIncreaseLtrRotate270=61506, + TextIndentIncreaseRotate270=61508, + TextIndentIncreaseRotate90=61510, + TextIndentIncreaseRtl=61512, + TextIndentIncreaseRtl90=61514, + TextIndentIncreaseRtlRotate270=61516, + TextItalic=61518, + TextLineSpacing=61520, + TextMore=61522, + TextNumberFormat=61524, + TextNumberListLtr=61526, + TextNumberListLtr90=61528, + TextNumberListLtrRotate270=61530, + TextNumberListRotate270=61532, + TextNumberListRotate90=61534, + TextNumberListRtl=61536, + TextNumberListRtl90=61538, + TextNumberListRtlRotate270=61540, + TextParagraph=61542, + TextParagraphDirection=61544, + TextParagraphDirectionLeft=61546, + TextParagraphDirectionRight=61548, + TextPeriodAsterisk=61550, + TextPositionBehind=61552, + TextPositionFront=61554, + TextPositionLine=61556, + TextPositionSquare=61558, + TextPositionSquareLeft=61560, + TextPositionSquareRight=61562, + TextPositionThrough=61564, + TextPositionTight=61566, + TextPositionTopBottom=61568, + TextProofingTools=61570, + TextQuote=61572, + TextSortAscending=61574, + TextSortDescending=61576, + TextStrikethrough=61578, + TextSubscript=61580, + TextSuperscript=61582, + TextT=61584, + TextUnderline=61586, + TextUnderlineCharacterU=61588, + TextUnderlineDouble=61590, + TextWholeWord=61592, + TextWordCount=61594, + TextWrap=61596, + TextWrapOff=61598, + Textbox=61600, + TextboxAlignBottom=61602, + TextboxAlignBottomCenter=61604, + TextboxAlignBottomLeft=61606, + TextboxAlignBottomRight=61608, + TextboxAlignBottomRotate90=61610, + TextboxAlignCenter=61612, + TextboxAlignMiddle=61614, + TextboxAlignMiddleLeft=61616, + TextboxAlignMiddleRight=61618, + TextboxAlignMiddleRotate90=61620, + TextboxAlignTop=61622, + TextboxAlignTopCenter=61624, + TextboxAlignTopLeft=61626, + TextboxAlignTopRight=61628, + TextboxAlignTopRotate90=61630, + TextboxMore=61632, + TextboxRotate90=61634, + TextboxSettings=61636, + Thinking=61638, + ThumbDislike=61640, + ThumbLike=61642, + ThumbLikeDislike=61644, + TicketDiagonal=61646, + TicketHorizontal=61648, + TimeAndWeather=61650, + TimePicker=61652, + Timeline=61654, + Timer10=61656, + Timer2=61658, + Timer=61660, + Timer3=61662, + TimerOff=61664, + ToggleLeft=61666, + ToggleMultiple=61668, + ToggleRight=61670, + Toolbox=61672, + TooltipQuote=61674, + TopSpeed=61676, + Translate=61678, + TranslateAuto=61680, + TranslateOff=61682, + Transmission=61684, + TrayItemAdd=61686, + TrayItemRemove=61688, + TreeDeciduous=61690, + TreeEvergreen=61692, + Triangle=61694, + TriangleDown=61696, + TriangleLeft=61698, + TriangleRight=61700, + TriangleUp=61702, + Trophy=61704, + TrophyLock=61706, + TrophyOff=61708, + Tv=61710, + TvArrowRight=61712, + TvUsb=61714, + Umbrella=61716, + UninstallApp=61718, + UsbPlug=61720, + UsbStick=61722, + Vault=61724, + VehicleBicycle=61726, + VehicleBus=61728, + VehicleCab=61730, + VehicleCableCar=61732, + VehicleCar=61734, + VehicleCarCollision=61736, + VehicleCarParking=61738, + VehicleCarProfile=61740, + VehicleCarProfileLtr=61742, + VehicleCarProfileLtrClock=61744, + VehicleCarProfileRtl=61746, + VehicleShip=61748, + VehicleSubway=61750, + VehicleTruck=61752, + VehicleTruckBag=61754, + VehicleTruckCube=61756, + VehicleTruckProfile=61758, + Video=61760, + Video360=61762, + Video360Off=61764, + VideoAdd=61766, + VideoBackgroundEffect=61768, + VideoBackgroundEffectHorizontal=61770, + VideoChat=61772, + VideoClip=61774, + VideoClipMultiple=61776, + VideoClipOff=61778, + VideoOff=61780, + VideoPerson=61782, + VideoPersonCall=61784, + VideoPersonClock=61786, + VideoPersonOff=61788, + VideoPersonSparkle=61790, + VideoPersonSparkleOff=61792, + VideoPersonStar=61794, + VideoPersonStarOff=61796, + VideoPlayPause=61798, + VideoProhibited=61800, + VideoRecording=61802, + VideoSecurity=61804, + VideoSwitch=61806, + VideoSync=61808, + ViewDesktop=61810, + ViewDesktopMobile=61812, + VirtualNetwork=61814, + VirtualNetworkToolbox=61816, + Voicemail=61818, + VoicemailArrowBack=61820, + VoicemailArrowForward=61822, + VoicemailArrowSubtract=61824, + VoicemailShield=61826, + VoicemailSubtract=61828, + Vote=61830, + WalkieTalkie=61832, + Wallet=61834, + WalletCreditCard=61836, + Wallpaper=61838, + Wand=61840, + Warning=61842, + WarningShield=61844, + Washer=61846, + Water=61848, + WeatherBlowingSnow=61850, + WeatherCloudy=61852, + WeatherDrizzle=61854, + WeatherDuststorm=61856, + WeatherFog=61858, + WeatherHailDay=61860, + WeatherHailNight=61862, + WeatherHaze=61864, + WeatherMoon=61866, + WeatherMoonOff=61868, + WeatherPartlyCloudyDay=61870, + WeatherPartlyCloudyNight=61872, + WeatherRain=61874, + WeatherRainShowersDay=61876, + WeatherRainShowersNight=61878, + WeatherRainSnow=61880, + WeatherSnow=61882, + WeatherSnowShowerDay=61884, + WeatherSnowShowerNight=61886, + WeatherSnowflake=61888, + WeatherSqualls=61890, + WeatherSunny=61892, + WeatherSunnyHigh=61894, + WeatherSunnyLow=61896, + WeatherThunderstorm=61898, + WebAsset=61900, + Whiteboard=61902, + Wifi1=61904, + Wifi2=61906, + Wifi3=61908, + Wifi4=61910, + WifiLock=61912, + WifiOff=61914, + WifiSettings=61916, + WifiWarning=61918, + Window=61920, + WindowAd=61922, + WindowAdOff=61924, + WindowAdPerson=61926, + WindowApps=61928, + WindowArrowUp=61930, + WindowBulletList=61932, + WindowBulletListAdd=61934, + WindowConsole=61936, + WindowDatabase=61938, + WindowDevEdit=61940, + WindowDevTools=61942, + WindowEdit=61944, + WindowHeaderHorizontal=61946, + WindowHeaderHorizontalOff=61948, + WindowHeaderVertical=61950, + WindowInprivate=61952, + WindowInprivateAccount=61954, + WindowLocationTarget=61956, + WindowMultiple=61958, + WindowMultipleSwap=61960, + WindowNew=61962, + WindowPlay=61964, + WindowSettings=61966, + WindowShield=61968, + WindowText=61970, + WindowWrench=61972, + Wrench=61974, + WrenchScrewdriver=61976, + XboxConsole=61978, + XboxController=61980, + XboxControllerError=61982, + Xray=61984, + ZoomFit=61986, + ZoomIn=61988, + ZoomOut=61990 +}; +Q_ENUM_NS(RibbonIcons_Filled) +QML_NAMED_ELEMENT(RibbonIcons_Filled) +QML_UNCREATABLE("This type is right-valued only.") +} + +namespace RibbonIconsRegularEnum { +Q_NAMESPACE +enum class RibbonIcons_Regular{ + AccessTime=57345, + Accessibility=57347, + AccessibilityCheckmark=57349, + Add=57351, + AddCircle=57353, + AddSquare=57355, + AddSquareMultiple=57357, + AddSubtractCircle=57359, + Airplane=57361, + AirplaneLanding=57363, + AirplaneTakeOff=57365, + Album=57367, + AlbumAdd=57369, + Alert=57371, + AlertBadge=57373, + AlertOff=57375, + AlertOn=57377, + AlertSnooze=57379, + AlertUrgent=57381, + AlignBottom=57383, + AlignCenterHorizontal=57385, + AlignCenterVertical=57387, + AlignEndHorizontal=57389, + AlignEndVertical=57391, + AlignLeft=57393, + AlignRight=57395, + AlignSpaceAroundHorizontal=57397, + AlignSpaceAroundVertical=57399, + AlignSpaceBetweenHorizontal=57401, + AlignSpaceBetweenVertical=57403, + AlignSpaceEvenlyHorizontal=57405, + AlignSpaceEvenlyVertical=57407, + AlignSpaceFitVertical=57409, + AlignStartHorizontal=57411, + AlignStartVertical=57413, + AlignStraighten=57415, + AlignStretchHorizontal=57417, + AlignStretchVertical=57419, + AlignTop=57421, + AnimalCat=57423, + AnimalDog=57425, + AnimalRabbit=57427, + AnimalRabbitOff=57429, + AnimalTurtle=57431, + AppFolder=57433, + AppGeneric=57435, + AppRecent=57437, + AppTitle=57439, + ApprovalsApp=57441, + Apps=57443, + AppsAddIn=57445, + AppsList=57447, + AppsListDetail=57449, + Archive=57451, + ArchiveArrowBack=57453, + ArchiveMultiple=57455, + ArchiveSettings=57457, + ArrowAutofitContent=57459, + ArrowAutofitDown=57461, + ArrowAutofitHeight=57463, + ArrowAutofitHeightDotted=57465, + ArrowAutofitHeightIn=57467, + ArrowAutofitUp=57469, + ArrowAutofitWidth=57471, + ArrowAutofitWidthDotted=57473, + ArrowBetweenDown=57475, + ArrowBetweenUp=57477, + ArrowBidirectionalLeftRight=57479, + ArrowBidirectionalUpDown=57481, + ArrowBounce=57483, + ArrowCircleDown=57485, + ArrowCircleDownDouble=57487, + ArrowCircleDownRight=57489, + ArrowCircleDownSplit=57491, + ArrowCircleDownUp=57493, + ArrowCircleLeft=57495, + ArrowCircleRight=57497, + ArrowCircleUp=57499, + ArrowCircleUpLeft=57501, + ArrowCircleUpRight=57503, + ArrowClockwise=57505, + ArrowClockwiseDashes=57507, + ArrowCollapseAll=57509, + ArrowCounterclockwise=57511, + ArrowCounterclockwiseDashes=57513, + ArrowCurveDownLeft=57515, + ArrowCurveDownRight=57517, + ArrowCurveUpLeft=57519, + ArrowCurveUpRight=57521, + ArrowDown=57523, + ArrowDownLeft=57525, + ArrowDownload=57527, + ArrowEject=57529, + ArrowEnter=57531, + ArrowEnterLeft=57533, + ArrowEnterUp=57535, + ArrowExit=57537, + ArrowExpand=57539, + ArrowExport=57541, + ArrowExportLtr=57543, + ArrowExportRtl=57545, + ArrowExportUp=57547, + ArrowFit=57549, + ArrowFitIn=57551, + ArrowFlowDiagonalUpRight=57553, + ArrowFlowUpRight=57555, + ArrowFlowUpRightRectangleMultiple=57557, + ArrowForward=57559, + ArrowForwardDownLightning=57561, + ArrowForwardDownPerson=57563, + ArrowHookDownLeft=57565, + ArrowHookDownRight=57567, + ArrowHookUpLeft=57569, + ArrowHookUpRight=57571, + ArrowImport=57573, + ArrowJoin=57575, + ArrowLeft=57577, + ArrowMaximize=57579, + ArrowMaximizeVertical=57581, + ArrowMinimize=57583, + ArrowMinimizeVertical=57585, + ArrowMove=57587, + ArrowMoveInward=57589, + ArrowNext=57591, + ArrowOutlineDownLeft=57593, + ArrowOutlineUpRight=57595, + ArrowParagraph=57597, + ArrowPrevious=57599, + ArrowRedo=57601, + ArrowRepeat1=57603, + ArrowRepeatAll=57605, + ArrowRepeatAllOff=57607, + ArrowReply=57609, + ArrowReplyAll=57611, + ArrowReplyDown=57613, + ArrowReset=57615, + ArrowRight=57617, + ArrowRotateClockwise=57619, + ArrowRotateCounterclockwise=57621, + ArrowRouting=57623, + ArrowRoutingRectangleMultiple=57625, + ArrowShuffle=57627, + ArrowShuffleOff=57629, + ArrowSort=57631, + ArrowSortDown=57633, + ArrowSortDownLines=57635, + ArrowSortUp=57637, + ArrowSplit=57639, + ArrowSprint=57641, + ArrowSquareDown=57643, + ArrowSquareUpRight=57645, + ArrowStepBack=57647, + ArrowStepIn=57649, + ArrowStepInDiagonalDownLeft=57651, + ArrowStepInLeft=57653, + ArrowStepInRight=57655, + ArrowStepOut=57657, + ArrowStepOver=57659, + ArrowSwap=57661, + ArrowSync=57663, + ArrowSyncCheckmark=57665, + ArrowSyncCircle=57667, + ArrowSyncDismiss=57669, + ArrowSyncOff=57671, + ArrowTrending=57673, + ArrowTrendingCheckmark=57675, + ArrowTrendingDown=57677, + ArrowTrendingLines=57679, + ArrowTrendingSettings=57681, + ArrowTrendingSparkle=57683, + ArrowTrendingText=57685, + ArrowTrendingWrench=57687, + ArrowTurnBidirectionalDownRight=57689, + ArrowTurnDownLeft=57691, + ArrowTurnDownRight=57693, + ArrowTurnDownUp=57695, + ArrowTurnLeftDown=57697, + ArrowTurnLeftRight=57699, + ArrowTurnLeftUp=57701, + ArrowTurnRight=57703, + ArrowTurnRightDown=57705, + ArrowTurnRightLeft=57707, + ArrowTurnRightUp=57709, + ArrowTurnUpDown=57711, + ArrowTurnUpLeft=57713, + ArrowUndo=57715, + ArrowUp=57717, + ArrowUpLeft=57719, + ArrowUpRight=57721, + ArrowUpload=57723, + ArrowWrap=57725, + ArrowWrapOff=57727, + ArrowsBidirectional=57729, + Attach=57731, + AttachArrowRight=57733, + AttachText=57735, + AutoFitHeight=57737, + AutoFitWidth=57739, + Autocorrect=57741, + Autosum=57743, + Backpack=57745, + BackpackAdd=57747, + Backspace=57749, + Badge=57751, + Balloon=57753, + BarcodeScanner=57755, + Battery0=57757, + Battery1=57759, + Battery10=57761, + Battery2=57763, + Battery3=57765, + Battery4=57767, + Battery5=57769, + Battery6=57771, + Battery7=57773, + Battery8=57775, + Battery9=57777, + BatteryCharge=57779, + BatteryCheckmark=57781, + BatterySaver=57783, + BatteryWarning=57785, + Beach=57787, + Beaker=57789, + BeakerEdit=57791, + BeakerOff=57793, + BeakerSettings=57795, + Bed=57797, + BezierCurveSquare=57799, + BinFull=57801, + BinRecycle=57803, + BinRecycleFull=57805, + BinderTriangle=57807, + Bluetooth=57809, + BluetoothConnected=57811, + BluetoothDisabled=57813, + BluetoothSearching=57815, + Blur=57817, + Board=57819, + BoardGames=57821, + BoardHeart=57823, + BoardSplit=57825, + Book=57827, + BookAdd=57829, + BookArrowClockwise=57831, + BookClock=57833, + BookCoins=57835, + BookCompass=57837, + BookContacts=57839, + BookDatabase=57841, + BookDismiss=57844, + BookExclamationMark=57846, + BookGlobe=57848, + BookInformation=57850, + BookLetter=57852, + BookNumber=57854, + BookOpen=57856, + BookOpenGlobe=57858, + BookOpenMicrophone=57860, + BookPulse=57862, + BookQuestionMark=57864, + BookQuestionMarkRtl=57866, + BookSearch=57868, + BookStar=57870, + BookTemplate=57872, + BookTheta=57874, + BookToolbox=57876, + Bookmark=57878, + BookmarkAdd=57880, + BookmarkMultiple=57882, + BookmarkOff=57884, + BookmarkSearch=57886, + BorderAll=57888, + BorderBottom=57890, + BorderBottomDouble=57892, + BorderBottomThick=57894, + BorderLeft=57896, + BorderLeftRight=57898, + BorderNone=57900, + BorderOutside=57902, + BorderOutsideThick=57904, + BorderRight=57906, + BorderTop=57908, + BorderTopBottom=57910, + BorderTopBottomDouble=57912, + BorderTopBottomThick=57914, + Bot=57916, + BotAdd=57918, + BotSparkle=57920, + BowTie=57922, + BowlChopsticks=57924, + BowlSalad=57926, + Box=57928, + BoxArrowLeft=57930, + BoxArrowUp=57932, + BoxCheckmark=57934, + BoxDismiss=57936, + BoxEdit=57938, + BoxMultiple=57940, + BoxMultipleArrowLeft=57942, + BoxMultipleArrowRight=57944, + BoxMultipleCheckmark=57946, + BoxMultipleSearch=57948, + BoxSearch=57950, + BoxToolbox=57952, + Braces=57954, + BracesVariable=57956, + BrainCircuit=57958, + Branch=57960, + BranchCompare=57962, + BranchFork=57964, + BranchForkHint=57966, + BranchForkLink=57968, + BranchRequest=57970, + BreakoutRoom=57972, + Briefcase=57974, + BriefcaseMedical=57976, + BriefcaseOff=57978, + BriefcaseSearch=57980, + BrightnessHigh=57982, + BrightnessLow=57984, + BroadActivityFeed=57986, + Broom=57988, + BubbleMultiple=57990, + Bug=57992, + BugArrowCounterclockwise=57994, + BugProhibited=57996, + Building=57998, + BuildingBank=58000, + BuildingBankLink=58002, + BuildingBankToolbox=58004, + BuildingDesktop=58006, + BuildingFactory=58008, + BuildingGovernment=58010, + BuildingHome=58012, + BuildingLighthouse=58014, + BuildingMosque=58016, + BuildingMultiple=58018, + BuildingPeople=58020, + BuildingRetail=58022, + BuildingRetailMoney=58024, + BuildingRetailMore=58026, + BuildingRetailShield=58028, + BuildingRetailToolbox=58030, + BuildingShop=58032, + BuildingSkyscraper=58034, + BuildingTownhouse=58036, + Button=58038, + Calculator=58040, + CalculatorArrowClockwise=58042, + CalculatorMultiple=58044, + Calendar=58046, + Calendar3Day=58048, + CalendarAdd=58050, + CalendarAgenda=58052, + CalendarArrowCounterclockwise=58054, + CalendarArrowDown=58056, + CalendarArrowRight=58058, + CalendarAssistant=58060, + CalendarCancel=58062, + CalendarChat=58064, + CalendarCheckmark=58066, + CalendarClock=58068, + CalendarDataBar=58070, + CalendarDate=58072, + CalendarDay=58074, + CalendarEdit=58076, + CalendarEmpty=58078, + CalendarError=58080, + CalendarEye=58082, + CalendarInfo=58084, + CalendarLock=58086, + CalendarLtr=58088, + CalendarMail=58090, + CalendarMention=58092, + CalendarMonth=58094, + CalendarMultiple=58096, + CalendarPattern=58098, + CalendarPerson=58100, + CalendarPhone=58102, + CalendarPlay=58104, + CalendarQuestionMark=58106, + CalendarReply=58108, + CalendarRtl=58110, + CalendarSearch=58112, + CalendarSettings=58114, + CalendarShield=58116, + CalendarStar=58118, + CalendarSync=58120, + CalendarToday=58122, + CalendarToolbox=58124, + CalendarWeekNumbers=58126, + CalendarWeekStart=58128, + CalendarWorkWeek=58130, + Call=58132, + CallAdd=58134, + CallCheckmark=58136, + CallConnecting=58138, + CallDismiss=58140, + CallEnd=58142, + CallExclamation=58144, + CallForward=58146, + CallInbound=58148, + CallMissed=58150, + CallOutbound=58152, + CallPark=58154, + CallPause=58156, + CallProhibited=58158, + CallTransfer=58160, + CallWarning=58162, + CalligraphyPen=58164, + CalligraphyPenCheckmark=58166, + CalligraphyPenError=58168, + CalligraphyPenQuestionMark=58170, + Camera=58172, + CameraAdd=58174, + CameraDome=58176, + CameraEdit=58178, + CameraOff=58180, + CameraSparkles=58182, + CameraSwitch=58184, + CardUi=58186, + CaretDown=58188, + CaretDownRight=58190, + CaretLeft=58192, + CaretRight=58194, + CaretUp=58196, + Cart=58198, + Cast=58200, + CastMultiple=58202, + CatchUp=58204, + Cellular3g=58206, + Cellular4g=58208, + Cellular5g=58210, + CellularData1=58212, + CellularData2=58214, + CellularData3=58216, + CellularData4=58218, + CellularData5=58220, + CellularOff=58222, + CellularWarning=58224, + CenterHorizontal=58226, + CenterVertical=58228, + Certificate=58230, + Channel=58232, + ChannelAdd=58234, + ChannelAlert=58236, + ChannelArrowLeft=58238, + ChannelDismiss=58240, + ChannelShare=58242, + ChannelSubtract=58244, + ChartMultiple=58246, + ChartPerson=58248, + Chat=58250, + ChatAdd=58252, + ChatArrowBack=58254, + ChatArrowDoubleBack=58256, + ChatBubblesQuestion=58258, + ChatCursor=58260, + ChatDismiss=58262, + ChatEmpty=58264, + ChatHelp=58266, + ChatMail=58268, + ChatMultiple=58270, + ChatMultipleHeart=58272, + ChatOff=58274, + ChatSettings=58276, + ChatSparkle=58278, + ChatVideo=58280, + ChatWarning=58282, + Check=58284, + Checkbox1=58286, + Checkbox2=58288, + CheckboxArrowRight=58290, + CheckboxChecked=58292, + CheckboxCheckedSync=58294, + CheckboxIndeterminate=58296, + CheckboxPerson=58298, + CheckboxUnchecked=58300, + CheckboxWarning=58302, + Checkmark=58304, + CheckmarkCircle=58306, + CheckmarkCircleSquare=58308, + CheckmarkLock=58310, + CheckmarkNote=58312, + CheckmarkSquare=58314, + CheckmarkStarburst=58316, + CheckmarkUnderlineCircle=58318, + Chess=58320, + ChevronCircleDown=58322, + ChevronCircleLeft=58324, + ChevronCircleRight=58326, + ChevronCircleUp=58328, + ChevronDoubleDown=58330, + ChevronDoubleLeft=58332, + ChevronDoubleRight=58334, + ChevronDoubleUp=58336, + ChevronDown=58338, + ChevronDownUp=58340, + ChevronLeft=58342, + ChevronRight=58344, + ChevronUp=58346, + ChevronUpDown=58348, + Circle=58350, + CircleEdit=58352, + CircleEraser=58354, + CircleHalfFill=58356, + CircleHint=58358, + CircleHintHalfVertical=58360, + CircleImage=58362, + CircleLine=58364, + CircleMultipleSubtractCheckmark=58366, + CircleOff=58368, + CircleSmall=58370, + City=58372, + Class=58374, + Classification=58376, + ClearFormatting=58378, + Clipboard=58380, + Clipboard3Day=58382, + ClipboardArrowRight=58384, + ClipboardBulletList=58386, + ClipboardBulletListLtr=58388, + ClipboardBulletListRtl=58390, + ClipboardCheckmark=58392, + ClipboardClock=58394, + ClipboardCode=58396, + ClipboardDataBar=58398, + ClipboardDay=58400, + ClipboardEdit=58402, + ClipboardError=58404, + ClipboardHeart=58406, + ClipboardImage=58408, + ClipboardLetter=58410, + ClipboardLink=58412, + ClipboardMonth=58414, + ClipboardMore=58416, + ClipboardNote=58418, + ClipboardPaste=58420, + ClipboardPulse=58422, + ClipboardSearch=58424, + ClipboardSettings=58426, + ClipboardTask=58428, + ClipboardTaskAdd=58430, + ClipboardTaskListLtr=58432, + ClipboardTaskListRtl=58434, + ClipboardTextEdit=58436, + ClipboardTextLtr=58438, + ClipboardTextRtl=58440, + Clock=58442, + ClockAlarm=58444, + ClockArrowDownload=58446, + ClockDismiss=58448, + ClockLock=58450, + ClockPause=58452, + ClockToolbox=58454, + ClosedCaption=58456, + ClosedCaptionOff=58458, + Cloud=58460, + CloudAdd=58462, + CloudArchive=58464, + CloudArrowDown=58466, + CloudArrowUp=58468, + CloudBidirectional=58470, + CloudCheckmark=58472, + CloudDatabase=58474, + CloudDesktop=58476, + CloudDismiss=58478, + CloudEdit=58480, + CloudError=58482, + CloudFlow=58484, + CloudLink=58486, + CloudOff=58488, + CloudSwap=58490, + CloudSync=58492, + CloudWords=58494, + Clover=58496, + Code=58498, + CodeBlock=58500, + CodeCircle=58502, + CodeText=58504, + CodeTextEdit=58506, + Collections=58508, + CollectionsAdd=58510, + Color=58512, + ColorBackground=58514, + ColorBackgroundAccent=58515, + ColorFill=58517, + ColorFillAccent=58518, + ColorLine=58520, + ColorLineAccent=58521, + Column=58523, + ColumnArrowRight=58525, + ColumnDoubleCompare=58527, + ColumnEdit=58529, + ColumnSingleCompare=58531, + ColumnTriple=58533, + ColumnTripleEdit=58535, + Comma=58537, + Comment=58539, + CommentAdd=58541, + CommentArrowLeft=58543, + CommentArrowRight=58545, + CommentCheckmark=58547, + CommentDismiss=58549, + CommentEdit=58551, + CommentError=58553, + CommentLightning=58555, + CommentLink=58557, + CommentMention=58559, + CommentMultiple=58561, + CommentMultipleCheckmark=58563, + CommentMultipleLink=58565, + CommentNote=58567, + CommentOff=58569, + Communication=58571, + CommunicationPerson=58573, + CompassNorthwest=58575, + Compose=58577, + ConferenceRoom=58579, + Connected=58581, + Connector=58583, + ContactCard=58585, + ContactCardGroup=58587, + ContactCardLink=58589, + ContactCardRibbon=58591, + ContentSettings=58593, + ContentView=58595, + ContentViewGallery=58597, + ContractDownLeft=58599, + ControlButton=58601, + ConvertRange=58603, + Cookies=58605, + Copy=58607, + CopyAdd=58609, + CopyArrowRight=58611, + CopySelect=58613, + Couch=58615, + CreditCardClock=58617, + CreditCardPerson=58619, + CreditCardToolbox=58621, + Crop=58623, + CropInterim=58625, + CropInterimOff=58627, + Crown=58629, + Cube=58631, + CubeAdd=58633, + CubeArrowCurveDown=58635, + CubeLink=58637, + CubeMultiple=58639, + CubeQuick=58641, + CubeRotate=58643, + CubeSync=58645, + CubeTree=58647, + CurrencyDollarEuro=58649, + CurrencyDollarRupee=58651, + Cursor=58653, + CursorClick=58655, + CursorHover=58657, + CursorHoverOff=58659, + CursorProhibited=58661, + Cut=58663, + DarkTheme=58665, + DataArea=58667, + DataBarHorizontal=58669, + DataBarVertical=58671, + DataBarVerticalAdd=58673, + DataBarVerticalStar=58675, + DataFunnel=58677, + DataHistogram=58679, + DataLine=58681, + DataPie=58683, + DataScatter=58685, + DataSunburst=58687, + DataTreemap=58689, + DataTrending=58691, + DataUsage=58693, + DataUsageEdit=58695, + DataUsageSettings=58697, + DataUsageToolbox=58699, + DataWaterfall=58701, + DataWhisker=58703, + Database=58705, + DatabaseArrowDown=58707, + DatabaseArrowRight=58709, + DatabaseArrowUp=58711, + DatabaseLightning=58713, + DatabaseLink=58715, + DatabaseMultiple=58717, + DatabasePerson=58719, + DatabasePlugConnected=58721, + DatabaseSearch=58723, + DatabaseSwitch=58725, + DatabaseWarning=58727, + DatabaseWindow=58729, + DecimalArrowLeft=58731, + DecimalArrowRight=58733, + Delete=58735, + DeleteArrowBack=58737, + DeleteDismiss=58739, + DeleteLines=58741, + DeleteOff=58743, + Dentist=58745, + DesignIdeas=58747, + Desk=58749, + Desktop=58751, + DesktopArrowDown=58753, + DesktopArrowRight=58755, + DesktopCheckmark=58757, + DesktopCursor=58759, + DesktopEdit=58761, + DesktopFlow=58763, + DesktopKeyboard=58765, + DesktopMac=58767, + DesktopPulse=58769, + DesktopSignal=58771, + DesktopSpeaker=58773, + DesktopSpeakerOff=58775, + DesktopSync=58777, + DesktopToolbox=58779, + DesktopTower=58781, + DeveloperBoard=58783, + DeveloperBoardLightning=58785, + DeveloperBoardLightningToolbox=58787, + DeveloperBoardSearch=58789, + DeviceEq=58791, + DeviceMeetingRoom=58793, + DeviceMeetingRoomRemote=58795, + Diagram=58797, + Dialpad=58799, + DialpadOff=58801, + Diamond=58803, + Directions=58805, + Dishwasher=58807, + Dismiss=58809, + DismissCircle=58811, + DismissSquare=58813, + DismissSquareMultiple=58815, + Diversity=58817, + DividerShort=58819, + DividerTall=58821, + Dock=58823, + DockRow=58825, + Doctor=58827, + Document100=58829, + Document=58831, + DocumentAdd=58833, + DocumentArrowDown=58835, + DocumentArrowLeft=58837, + DocumentArrowRight=58839, + DocumentArrowUp=58841, + DocumentBorder=58843, + DocumentBorderPrint=58845, + DocumentBriefcase=58847, + DocumentBulletList=58849, + DocumentBulletListArrowLeft=58851, + DocumentBulletListClock=58853, + DocumentBulletListCube=58855, + DocumentBulletListMultiple=58857, + DocumentBulletListOff=58859, + DocumentCatchUp=58861, + DocumentCheckmark=58863, + DocumentChevronDouble=58865, + DocumentCopy=58867, + DocumentCss=58869, + DocumentData=58871, + DocumentDataLink=58873, + DocumentDatabase=58875, + DocumentDismiss=58877, + DocumentEdit=58879, + DocumentEndnote=58881, + DocumentError=58883, + DocumentFit=58885, + DocumentFlowchart=58887, + DocumentFolder=58889, + DocumentFooter=58891, + DocumentFooterDismiss=58893, + DocumentHeader=58895, + DocumentHeaderArrowDown=58897, + DocumentHeaderDismiss=58899, + DocumentHeaderFooter=58901, + DocumentHeart=58903, + DocumentHeartPulse=58905, + DocumentImage=58907, + DocumentJava=58909, + DocumentJavascript=58911, + DocumentKey=58913, + DocumentLandscape=58915, + DocumentLandscapeData=58917, + DocumentLandscapeSplit=58919, + DocumentLandscapeSplitHint=58921, + DocumentLink=58923, + DocumentLock=58925, + DocumentMargins=58927, + DocumentMention=58929, + DocumentMultiple=58931, + DocumentMultiplePercent=58933, + DocumentMultipleProhibited=58935, + DocumentMultipleSync=58937, + DocumentOnePage=58939, + DocumentOnePageAdd=58941, + DocumentOnePageColumns=58943, + DocumentOnePageLink=58945, + DocumentOnePageMultiple=58947, + DocumentOnePageSparkle=58949, + DocumentPageBottomCenter=58951, + DocumentPageBottomLeft=58953, + DocumentPageBottomRight=58955, + DocumentPageBreak=58957, + DocumentPageNumber=58959, + DocumentPageTopCenter=58961, + DocumentPageTopLeft=58963, + DocumentPageTopRight=58965, + DocumentPdf=58967, + DocumentPercent=58969, + DocumentPerson=58971, + DocumentPill=58973, + DocumentPrint=58975, + DocumentProhibited=58977, + DocumentQuestionMark=58979, + DocumentQueue=58981, + DocumentQueueAdd=58983, + DocumentQueueMultiple=58985, + DocumentRibbon=58987, + DocumentSass=58989, + DocumentSave=58991, + DocumentSearch=58993, + DocumentSettings=58995, + DocumentSplitHint=58997, + DocumentSplitHintOff=58999, + DocumentSync=59001, + DocumentTable=59003, + DocumentTableArrowRight=59005, + DocumentTableCheckmark=59007, + DocumentTableCube=59009, + DocumentTableSearch=59011, + DocumentTableTruck=59013, + DocumentText=59015, + DocumentTextClock=59017, + DocumentTextExtract=59019, + DocumentTextLink=59021, + DocumentTextToolbox=59023, + DocumentToolbox=59025, + DocumentWidth=59027, + DocumentYml=59029, + Door=59031, + DoorArrowLeft=59033, + DoorArrowRight=59035, + DoorTag=59037, + DoubleSwipeDown=59039, + DoubleSwipeUp=59041, + DoubleTapSwipeDown=59043, + DoubleTapSwipeUp=59045, + Drafts=59047, + Drag=59049, + DrawImage=59051, + DrawShape=59053, + DrawText=59055, + DrawerAdd=59057, + DrawerArrowDownload=59059, + DrawerDismiss=59061, + DrawerPlay=59063, + DrawerSubtract=59065, + DrinkBeer=59067, + DrinkBottle=59069, + DrinkBottleOff=59071, + DrinkCoffee=59073, + DrinkMargarita=59075, + DrinkToGo=59077, + DrinkWine=59079, + DriveTrain=59081, + Drop=59083, + DualScreen=59085, + DualScreenAdd=59087, + DualScreenArrowRight=59089, + DualScreenArrowUp=59091, + DualScreenClock=59093, + DualScreenClosedAlert=59095, + DualScreenDesktop=59097, + DualScreenDismiss=59099, + DualScreenGroup=59101, + DualScreenHeader=59103, + DualScreenLock=59105, + DualScreenMirror=59107, + DualScreenPagination=59109, + DualScreenSettings=59111, + DualScreenSpan=59113, + DualScreenSpeaker=59115, + DualScreenStatusBar=59117, + DualScreenTablet=59119, + DualScreenUpdate=59121, + DualScreenVerticalScroll=59123, + DualScreenVibrate=59125, + Dumbbell=59127, + Dust=59129, + Earth=59131, + EarthLeaf=59133, + Edit=59135, + EditArrowBack=59137, + EditOff=59139, + EditProhibited=59141, + EditSettings=59143, + Elevator=59145, + Emoji=59147, + EmojiAdd=59149, + EmojiAngry=59151, + EmojiEdit=59153, + EmojiHand=59155, + EmojiHint=59157, + EmojiLaugh=59159, + EmojiMeh=59161, + EmojiMultiple=59163, + EmojiSad=59165, + EmojiSadSlight=59167, + EmojiSmileSlight=59169, + EmojiSparkle=59171, + EmojiSurprise=59173, + Engine=59175, + EqualCircle=59177, + EqualOff=59179, + Eraser=59181, + EraserMedium=59183, + EraserSegment=59185, + EraserSmall=59187, + EraserTool=59189, + ErrorCircle=59191, + ErrorCircleSettings=59193, + ExpandUpLeft=59195, + ExpandUpRight=59197, + ExtendedDock=59199, + Eye=59201, + EyeLines=59203, + EyeOff=59205, + EyeTracking=59207, + EyeTrackingOff=59209, + Eyedropper=59211, + EyedropperOff=59213, + FStop=59215, + FastAcceleration=59217, + FastForward=59219, + Fax=59221, + Feed=59223, + Filmstrip=59225, + FilmstripPlay=59227, + FilmstripSplit=59229, + Filter=59231, + FilterAdd=59233, + FilterDismiss=59235, + FilterSync=59237, + Fingerprint=59239, + Fire=59241, + Fireplace=59243, + FixedWidth=59245, + Flag=59247, + FlagCheckered=59249, + FlagClock=59251, + FlagOff=59253, + Flash=59259, + FlashAdd=59261, + FlashAuto=59263, + FlashCheckmark=59265, + FlashFlow=59267, + FlashOff=59269, + FlashPlay=59271, + FlashSettings=59273, + FlashSparkle=59275, + Flashlight=59277, + FlashlightOff=59279, + FlipHorizontal=59281, + FlipVertical=59283, + Flow=59285, + Flowchart=59287, + FlowchartCircle=59289, + Fluent=59291, + Fluid=59293, + Folder=59295, + FolderAdd=59297, + FolderArrowLeft=59299, + FolderArrowRight=59301, + FolderArrowUp=59303, + FolderBriefcase=59305, + FolderGlobe=59307, + FolderLightning=59309, + FolderLink=59311, + FolderList=59313, + FolderMail=59315, + FolderOpen=59317, + FolderOpenVertical=59319, + FolderPeople=59321, + FolderPerson=59323, + FolderProhibited=59325, + FolderSwap=59327, + FolderSync=59329, + FolderZip=59331, + FontDecrease=59333, + FontIncrease=59335, + FontSpaceTrackingIn=59337, + FontSpaceTrackingOut=59339, + Food=59341, + FoodApple=59343, + FoodCake=59345, + FoodCarrot=59347, + FoodChickenLeg=59349, + FoodEgg=59351, + FoodFish=59353, + FoodGrains=59355, + FoodPizza=59357, + FoodToast=59359, + Form=59361, + FormMultiple=59363, + FormNew=59365, + Fps120=59367, + Fps240=59369, + Fps30=59371, + Fps60=59373, + Fps960=59375, + Frame=59377, + FullScreenMaximize=59379, + FullScreenMinimize=59381, + Games=59383, + GanttChart=59385, + Gas=59387, + GasPump=59389, + Gather=59391, + Gauge=59393, + GaugeAdd=59395, + Gavel=59397, + GavelProhibited=59399, + Gesture=59401, + Gif=59403, + Gift=59405, + GiftCard=59407, + GiftCardAdd=59409, + GiftCardArrowRight=59411, + GiftCardMoney=59413, + GiftCardMultiple=59415, + GiftOpen=59417, + Glance=59419, + GlanceHorizontal=59421, + Glasses=59423, + GlassesOff=59425, + Globe=59427, + GlobeAdd=59429, + GlobeClock=59431, + GlobeDesktop=59433, + GlobeLocation=59435, + GlobePerson=59437, + GlobeProhibited=59439, + GlobeSearch=59441, + GlobeShield=59443, + GlobeStar=59445, + GlobeSurface=59447, + GlobeVideo=59449, + Grid=59451, + GridDots=59453, + GridKanban=59455, + Group=59457, + GroupDismiss=59459, + GroupList=59461, + GroupReturn=59463, + Guardian=59465, + Guest=59467, + GuestAdd=59469, + Guitar=59471, + HandDraw=59473, + HandLeft=59475, + HandLeftChat=59477, + HandOpenHeart=59479, + HandRight=59481, + HandRightOff=59483, + HandWave=59485, + Handshake=59487, + HardDrive=59489, + HatGraduation=59491, + HatGraduationSparkle=59493, + Hd=59495, + Hdr=59497, + HdrOff=59499, + Headphones=59501, + HeadphonesSoundWave=59503, + Headset=59505, + HeadsetAdd=59507, + HeadsetVr=59509, + Heart=59511, + HeartBroken=59513, + HeartCircle=59515, + HeartCircleHint=59517, + HeartOff=59519, + HeartPulse=59521, + HeartPulseCheckmark=59523, + HeartPulseError=59525, + HeartPulseWarning=59527, + Hexagon=59529, + HexagonThree=59531, + Highlight=59533, + HighlightLink=59536, + History=59538, + HistoryDismiss=59540, + Home=59542, + HomeAdd=59544, + HomeCheckmark=59546, + HomeDatabase=59548, + HomeHeart=59550, + HomeMore=59552, + HomePerson=59554, + HomeSplit=59556, + Hourglass=59558, + HourglassHalf=59560, + HourglassOneQuarter=59562, + HourglassThreeQuarter=59564, + Icons=59566, + Image=59568, + ImageAdd=59570, + ImageAltText=59572, + ImageArrowBack=59574, + ImageArrowCounterclockwise=59576, + ImageArrowForward=59578, + ImageBorder=59580, + ImageCircle=59582, + ImageCopy=59584, + ImageEdit=59586, + ImageGlobe=59588, + ImageMultiple=59590, + ImageMultipleOff=59592, + ImageOff=59594, + ImageProhibited=59596, + ImageReflection=59598, + ImageSearch=59600, + ImageShadow=59602, + ImageSparkle=59604, + ImageStack=59606, + ImageTable=59608, + ImmersiveReader=59610, + Important=59612, + Incognito=59614, + Info=59616, + InfoShield=59618, + InkStroke=59620, + InkStrokeArrowDown=59622, + InkStrokeArrowUpDown=59624, + InkingTool=59626, + InprivateAccount=59629, + Insert=59631, + IosChevronRight=59633, + Iot=59635, + IotAlert=59637, + Javascript=59639, + Joystick=59641, + Key=59643, + KeyCommand=59645, + KeyMultiple=59647, + KeyReset=59649, + Keyboard123=59651, + Keyboard=59653, + KeyboardDock=59655, + KeyboardLayoutFloat=59657, + KeyboardLayoutOneHandedLeft=59659, + KeyboardLayoutResize=59661, + KeyboardLayoutSplit=59663, + KeyboardShift=59665, + KeyboardShiftUppercase=59667, + KeyboardTab=59669, + Laptop=59671, + LaptopDismiss=59673, + LaptopShield=59675, + LaserTool=59677, + Lasso=59679, + LauncherSettings=59681, + Layer=59683, + LayerDiagonal=59685, + LayerDiagonalPerson=59687, + LeafOne=59689, + LeafThree=59691, + LeafTwo=59693, + LearningApp=59695, + Library=59697, + Lightbulb=59699, + LightbulbCheckmark=59701, + LightbulbCircle=59703, + LightbulbFilament=59705, + LightbulbPerson=59707, + Likert=59709, + Line=59711, + LineDashes=59713, + LineHorizontal1=59715, + LineHorizontal1Dashes=59717, + LineHorizontal2DashesSolid=59719, + LineHorizontal3=59721, + LineHorizontal4=59723, + LineHorizontal4Search=59725, + LineHorizontal5=59727, + LineHorizontal5Error=59729, + LineStyle=59731, + LineThickness=59733, + Link=59735, + LinkDismiss=59737, + LinkEdit=59739, + LinkMultiple=59741, + LinkSquare=59743, + LinkToolbox=59745, + List=59747, + ListBar=59749, + ListBarTree=59751, + ListBarTreeOffset=59753, + ListRtl=59755, + Live=59757, + LiveOff=59759, + LocalLanguage=59761, + Location=59763, + LocationAdd=59765, + LocationAddLeft=59767, + LocationAddRight=59769, + LocationAddUp=59771, + LocationArrow=59773, + LocationArrowLeft=59775, + LocationArrowRight=59777, + LocationArrowUp=59779, + LocationDismiss=59781, + LocationLive=59783, + LocationOff=59785, + LockClosed=59787, + LockClosedKey=59789, + LockMultiple=59791, + LockOpen=59793, + LockShield=59795, + Lottery=59797, + Luggage=59799, + Mail=59801, + MailAdd=59803, + MailAlert=59805, + MailAllRead=59807, + MailAllUnread=59809, + MailArrowDoubleBack=59811, + MailArrowDown=59813, + MailArrowForward=59815, + MailArrowUp=59817, + MailAttach=59819, + MailCheckmark=59821, + MailClock=59823, + MailCopy=59825, + MailDismiss=59827, + MailEdit=59829, + MailError=59831, + MailInbox=59833, + MailInboxAdd=59835, + MailInboxAll=59837, + MailInboxArrowDown=59839, + MailInboxArrowRight=59841, + MailInboxArrowUp=59843, + MailInboxCheckmark=59845, + MailInboxDismiss=59847, + MailLink=59849, + MailList=59851, + MailMultiple=59853, + MailOff=59855, + MailOpenPerson=59857, + MailPause=59859, + MailProhibited=59861, + MailRead=59863, + MailReadMultiple=59865, + MailSettings=59867, + MailShield=59869, + MailTemplate=59871, + MailUnread=59873, + MailWarning=59875, + Map=59877, + MapDrive=59879, + Markdown=59881, + MatchAppLayout=59883, + MathFormatLinear=59885, + MathFormatProfessional=59887, + MathFormula=59889, + MathSymbols=59891, + Maximize=59893, + MeetNow=59895, + Megaphone=59897, + MegaphoneCircle=59899, + MegaphoneLoud=59901, + MegaphoneOff=59903, + Mention=59905, + MentionArrowDown=59907, + MentionBrackets=59909, + Merge=59911, + Mic=59913, + MicOff=59915, + MicProhibited=59917, + MicPulse=59919, + MicPulseOff=59921, + MicRecord=59923, + MicSettings=59925, + MicSparkle=59927, + MicSync=59929, + Microscope=59931, + Midi=59933, + MobileOptimized=59935, + Mold=59937, + Molecule=59939, + Money=59941, + MoneyCalculator=59943, + MoneyDismiss=59945, + MoneyHand=59947, + MoneyOff=59949, + MoneySettings=59951, + MoreCircle=59953, + MoreHorizontal=59955, + MoreVertical=59957, + MountainLocationBottom=59959, + MountainLocationTop=59961, + MountainTrail=59963, + MoviesAndTv=59965, + Multiplier12x=59967, + Multiplier15x=59969, + Multiplier18x=59971, + Multiplier1x=59973, + Multiplier2x=59975, + Multiplier5x=59977, + MultiselectLtr=59979, + MultiselectRtl=59981, + MusicNote1=59983, + MusicNote2=59985, + MusicNote2Play=59987, + MusicNoteOff1=59989, + MusicNoteOff2=59991, + MyLocation=59993, + Navigation=59995, + NavigationLocationTarget=59997, + NavigationPlay=59999, + NavigationUnread=60001, + NetworkCheck=60003, + New=60005, + News=60007, + Next=60009, + NextFrame=60011, + Note=60013, + NoteAdd=60015, + NoteEdit=60017, + NotePin=60019, + Notebook=60021, + NotebookAdd=60023, + NotebookArrowCurveDown=60025, + NotebookError=60027, + NotebookEye=60029, + NotebookLightning=60031, + NotebookQuestionMark=60033, + NotebookSection=60035, + NotebookSectionArrowRight=60037, + NotebookSubsection=60039, + NotebookSync=60041, + Notepad=60043, + NotepadEdit=60045, + NotepadPerson=60047, + NumberCircle1=60049, + NumberCircle2=60051, + NumberCircle3=60053, + NumberCircle4=60055, + NumberCircle5=60057, + NumberRow=60059, + NumberSymbol=60061, + NumberSymbolDismiss=60063, + NumberSymbolSquare=60065, + Open=60067, + OpenFolder=60069, + OpenOff=60071, + Options=60073, + Organization=60075, + OrganizationHorizontal=60077, + Orientation=60079, + Oval=60081, + Oven=60083, + PaddingDown=60085, + PaddingLeft=60087, + PaddingRight=60089, + PaddingTop=60091, + PageFit=60093, + PaintBrush=60095, + PaintBrushArrowDown=60097, + PaintBrushArrowUp=60099, + PaintBucket=60101, + Pair=60103, + PanelBottom=60105, + PanelBottomContract=60107, + PanelBottomExpand=60109, + PanelLeft=60111, + PanelLeftAdd=60113, + PanelLeftContract=60115, + PanelLeftExpand=60117, + PanelLeftHeader=60120, + PanelLeftHeaderAdd=60122, + PanelLeftHeaderKey=60124, + PanelLeftKey=60126, + PanelLeftText=60128, + PanelLeftTextAdd=60130, + PanelLeftTextDismiss=60132, + PanelRight=60134, + PanelRightAdd=60136, + PanelRightContract=60138, + PanelRightCursor=60140, + PanelRightExpand=60142, + PanelSeparateWindow=60144, + PanelTopContract=60146, + PanelTopExpand=60148, + Password=60150, + Patch=60152, + Patient=60154, + Pause=60156, + PauseCircle=60158, + PauseOff=60160, + PauseSettings=60162, + Payment=60164, + Pen=60166, + PenDismiss=60168, + PenOff=60170, + PenProhibited=60172, + PenSparkle=60174, + Pentagon=60176, + People=60178, + PeopleAdd=60180, + PeopleAudience=60182, + PeopleCall=60184, + PeopleCheckmark=60186, + PeopleCommunity=60188, + PeopleCommunityAdd=60190, + PeopleEdit=60192, + PeopleError=60194, + PeopleList=60196, + PeopleLock=60198, + PeopleMoney=60200, + PeopleProhibited=60202, + PeopleQueue=60204, + PeopleSearch=60206, + PeopleSettings=60208, + PeopleStar=60210, + PeopleSwap=60212, + PeopleSync=60214, + PeopleTeam=60216, + PeopleTeamAdd=60218, + PeopleTeamDelete=60220, + PeopleTeamToolbox=60222, + PeopleToolbox=60224, + Person=60226, + Person5=60228, + Person6=60230, + PersonAccounts=60232, + PersonAdd=60234, + PersonAlert=60236, + PersonArrowBack=60238, + PersonArrowLeft=60240, + PersonArrowRight=60242, + PersonAvailable=60244, + PersonBoard=60246, + PersonCall=60248, + PersonChat=60250, + PersonCircle=60252, + PersonClock=60254, + PersonDelete=60256, + PersonDesktop=60258, + PersonEdit=60260, + PersonFeedback=60262, + PersonHeart=60264, + PersonInfo=60266, + PersonKey=60268, + PersonLightbulb=60270, + PersonLightning=60272, + PersonLink=60274, + PersonLock=60276, + PersonMail=60278, + PersonMoney=60280, + PersonNote=60282, + PersonPill=60284, + PersonProhibited=60286, + PersonQuestionMark=60288, + PersonRibbon=60290, + PersonRunning=60292, + PersonSearch=60294, + PersonSettings=60296, + PersonSquare=60298, + PersonStar=60300, + PersonStarburst=60302, + PersonSubtract=60304, + PersonSupport=60306, + PersonSwap=60308, + PersonSync=60310, + PersonTag=60312, + PersonVoice=60314, + PersonWalking=60316, + PersonWrench=60318, + Phone=60320, + PhoneAdd=60322, + PhoneArrowRight=60324, + PhoneChat=60326, + PhoneCheckmark=60328, + PhoneDesktop=60330, + PhoneDesktopAdd=60332, + PhoneDismiss=60334, + PhoneEdit=60336, + PhoneEraser=60338, + PhoneKey=60340, + PhoneLaptop=60342, + PhoneLinkSetup=60344, + PhoneLock=60346, + PhonePageHeader=60348, + PhonePagination=60350, + PhoneScreenTime=60352, + PhoneShake=60354, + PhoneSpanIn=60356, + PhoneSpanOut=60358, + PhoneSpeaker=60360, + PhoneStatusBar=60362, + PhoneTablet=60364, + PhoneUpdate=60366, + PhoneUpdateCheckmark=60368, + PhoneVerticalScroll=60370, + PhoneVibrate=60372, + PhotoFilter=60374, + Pi=60376, + PictureInPicture=60378, + PictureInPictureEnter=60380, + PictureInPictureExit=60382, + Pill=60384, + Pin=60386, + PinOff=60388, + Pipeline=60390, + PipelineAdd=60392, + PipelineArrowCurveDown=60394, + PipelinePlay=60396, + Pivot=60398, + PlantGrass=60400, + PlantRagweed=60402, + Play=60404, + PlayCircle=60406, + PlayCircleHint=60408, + PlaySettings=60410, + PlayingCards=60412, + PlugConnected=60414, + PlugConnectedAdd=60416, + PlugConnectedCheckmark=60418, + PlugConnectedSettings=60420, + PlugDisconnected=60422, + PointScan=60424, + Poll=60426, + PollHorizontal=60428, + PortHdmi=60430, + PortMicroUsb=60432, + PortUsbA=60434, + PortUsbC=60436, + PositionBackward=60438, + PositionForward=60440, + PositionToBack=60442, + PositionToFront=60444, + Power=60446, + Predictions=60448, + Premium=60450, + PremiumPerson=60452, + PresenceAvailable=60454, + PresenceAway=60456, + PresenceBlocked=60457, + PresenceDnd=60460, + PresenceOffline=60461, + PresenceOof=60462, + PresenceUnknown=60463, + Presenter=60465, + PresenterOff=60467, + PreviewLink=60469, + Previous=60471, + PreviousFrame=60473, + Print=60475, + PrintAdd=60477, + Production=60479, + ProductionCheckmark=60481, + Prohibited=60483, + ProhibitedMultiple=60485, + ProhibitedNote=60487, + ProjectionScreen=60489, + ProjectionScreenDismiss=60491, + ProtocolHandler=60493, + Pulse=60495, + PulseSquare=60497, + PuzzleCube=60499, + PuzzleCubePiece=60501, + PuzzlePiece=60503, + PuzzlePieceShield=60505, + QrCode=60507, + Question=60509, + QuestionCircle=60511, + QuizNew=60513, + Radar=60515, + RadarCheckmark=60517, + RadarRectangleMultiple=60519, + RadioButton=60521, + Ram=60523, + RatingMature=60525, + RatioOneToOne=60527, + ReOrder=60529, + ReOrderDotsHorizontal=60531, + ReOrderDotsVertical=60533, + ReadAloud=60535, + ReadingList=60537, + ReadingListAdd=60539, + ReadingModeMobile=60541, + RealEstate=60543, + Receipt=60545, + ReceiptAdd=60547, + ReceiptBag=60549, + ReceiptCube=60551, + ReceiptMoney=60553, + ReceiptPlay=60555, + ReceiptSearch=60557, + ReceiptSparkles=60559, + Record=60561, + RecordStop=60563, + RectangleLandscape=60565, + RectangleLandscapeHintCopy=60567, + RectanglePortraitLocationTarget=60569, + Recycle=60571, + RemixAdd=60573, + Remote=60575, + Rename=60577, + Reorder=60579, + Replay=60581, + Resize=60583, + ResizeImage=60585, + ResizeLarge=60587, + ResizeSmall=60589, + ResizeTable=60591, + ResizeVideo=60593, + Reward=60595, + Rewind=60597, + Rhombus=60599, + Ribbon=60601, + RibbonAdd=60603, + RibbonOff=60605, + RibbonStar=60607, + RoadCone=60609, + Rocket=60611, + RotateLeft=60613, + RotateRight=60615, + Router=60617, + RowTriple=60619, + Rss=60621, + Ruler=60623, + Run=60625, + Sanitize=60627, + Save=60629, + SaveArrowRight=60631, + SaveCopy=60633, + SaveEdit=60635, + SaveImage=60637, + SaveMultiple=60639, + SaveSearch=60641, + SaveSync=60643, + Savings=60645, + ScaleFill=60647, + ScaleFit=60649, + Scales=60651, + Scan=60653, + ScanCamera=60655, + ScanDash=60657, + ScanObject=60659, + ScanTable=60661, + ScanText=60663, + ScanThumbUp=60665, + ScanThumbUpOff=60667, + ScanType=60669, + ScanTypeCheckmark=60671, + ScanTypeOff=60673, + Scratchpad=60675, + ScreenCut=60677, + ScreenPerson=60679, + ScreenSearch=60681, + Screenshot=60683, + Script=60685, + Search=60687, + SearchInfo=60689, + SearchSettings=60691, + SearchShield=60693, + SearchSquare=60695, + SearchVisual=60697, + SelectAllOff=60699, + SelectAllOn=60701, + SelectObject=60703, + SelectObjectSkew=60705, + SelectObjectSkewDismiss=60707, + SelectObjectSkewEdit=60709, + Send=60711, + SendBeaker=60713, + SendClock=60715, + SendCopy=60717, + SerialPort=60719, + Server=60721, + ServerMultiple=60723, + ServerPlay=60725, + ServiceBell=60727, + Settings=60729, + SettingsChat=60731, + SettingsCogMultiple=60733, + ShapeExclude=60735, + ShapeIntersect=60737, + ShapeSubtract=60739, + ShapeUnion=60741, + Shapes=60743, + Share=60745, + ShareAndroid=60747, + ShareCloseTray=60749, + ShareIos=60751, + ShareScreenPerson=60753, + ShareScreenPersonOverlay=60755, + ShareScreenPersonOverlayInside=60757, + ShareScreenPersonP=60759, + ShareScreenStart=60761, + ShareScreenStop=60763, + Shield=60765, + ShieldAdd=60767, + ShieldBadge=60769, + ShieldCheckmark=60771, + ShieldDismiss=60773, + ShieldDismissShield=60775, + ShieldError=60777, + ShieldGlobe=60779, + ShieldKeyhole=60781, + ShieldLock=60783, + ShieldPerson=60785, + ShieldPersonAdd=60787, + ShieldProhibited=60789, + ShieldQuestion=60791, + ShieldTask=60793, + Shifts=60795, + Shifts30Minutes=60797, + ShiftsActivity=60799, + ShiftsAdd=60801, + ShiftsAvailability=60803, + ShiftsCheckmark=60805, + ShiftsDay=60807, + ShiftsOpen=60809, + ShiftsProhibited=60811, + ShiftsQuestionMark=60813, + ShiftsTeam=60815, + ShoppingBag=60817, + ShoppingBagArrowLeft=60819, + ShoppingBagDismiss=60821, + ShoppingBagPause=60823, + ShoppingBagPercent=60825, + ShoppingBagPlay=60827, + ShoppingBagTag=60829, + Shortpick=60831, + Showerhead=60833, + SidebarSearchLtr=60835, + SidebarSearchRtl=60837, + SignOut=60839, + Signature=60841, + Sim=60843, + SkipBack10=60845, + SkipForward10=60847, + SkipForward30=60849, + SkipForwardTab=60851, + SlashForward=60853, + Sleep=60855, + SlideAdd=60857, + SlideArrowRight=60859, + SlideEraser=60861, + SlideGrid=60863, + SlideHide=60865, + SlideLayout=60867, + SlideLink=60869, + SlideMicrophone=60871, + SlideMultiple=60873, + SlideMultipleArrowRight=60875, + SlideMultipleSearch=60877, + SlideRecord=60879, + SlideSearch=60881, + SlideSettings=60883, + SlideSize=60885, + SlideText=60887, + SlideTextMultiple=60889, + SlideTextPerson=60891, + SlideTextSparkle=60893, + SlideTransition=60895, + Smartwatch=60897, + SmartwatchDot=60899, + Snooze=60901, + SoundSource=60903, + SoundWaveCircle=60905, + Space3d=60907, + Spacebar=60909, + Sparkle=60911, + SparkleCircle=60913, + Speaker0=60915, + Speaker1=60917, + Speaker2=60919, + SpeakerBluetooth=60921, + SpeakerEdit=60923, + SpeakerMute=60925, + SpeakerOff=60927, + SpeakerSettings=60929, + SpeakerUsb=60931, + SpinnerIos=60933, + SplitHint=60935, + SplitHorizontal=60937, + SplitVertical=60939, + Sport=60941, + SportAmericanFootball=60943, + SportBaseball=60945, + SportBasketball=60947, + SportHockey=60949, + SportSoccer=60951, + Square=60953, + SquareAdd=60955, + SquareArrowForward=60957, + SquareDismiss=60959, + SquareEraser=60961, + SquareHint=60963, + SquareHintApps=60965, + SquareHintArrowBack=60967, + SquareHintSparkles=60969, + SquareMultiple=60971, + SquareShadow=60973, + SquaresNested=60975, + Stack=60977, + StackAdd=60979, + StackArrowForward=60981, + StackStar=60983, + StackVertical=60985, + Star=60987, + StarAdd=60989, + StarArrowBack=60991, + StarArrowRightEnd=60993, + StarArrowRightStart=60995, + StarCheckmark=60997, + StarDismiss=60999, + StarEdit=61001, + StarEmphasis=61003, + StarHalf=61005, + StarLineHorizontal3=61007, + StarOff=61009, + StarOneQuarter=61011, + StarProhibited=61013, + StarSettings=61015, + StarThreeQuarter=61017, + Status=61019, + Steps=61021, + Stethoscope=61023, + Sticker=61025, + StickerAdd=61027, + Stop=61029, + Storage=61031, + StoreMicrosoft=61033, + Stream=61035, + StreamInput=61037, + StreamInputOutput=61039, + StreamOutput=61041, + StyleGuide=61043, + SubGrid=61045, + Subtitles=61047, + Subtract=61049, + SubtractCircle=61051, + SubtractCircleArrowBack=61053, + SubtractCircleArrowForward=61055, + SubtractSquare=61057, + SubtractSquareMultiple=61059, + SurfaceEarbuds=61061, + SurfaceHub=61063, + SwimmingPool=61065, + SwipeDown=61067, + SwipeRight=61069, + SwipeUp=61071, + Symbols=61073, + SyncOff=61075, + Syringe=61077, + System=61079, + Tab=61081, + TabAdd=61083, + TabArrowLeft=61085, + TabDesktop=61087, + TabDesktopArrowClockwise=61089, + TabDesktopArrowLeft=61091, + TabDesktopBottom=61093, + TabDesktopClock=61095, + TabDesktopCopy=61097, + TabDesktopImage=61099, + TabDesktopLink=61101, + TabDesktopMultiple=61103, + TabDesktopMultipleBottom=61105, + TabDesktopNewPage=61107, + TabInPrivate=61109, + TabInprivateAccount=61111, + TabProhibited=61113, + TabShieldDismiss=61115, + Table=61117, + TableAdd=61119, + TableArrowUp=61121, + TableBottomRow=61123, + TableCalculator=61125, + TableCellEdit=61127, + TableCellsMerge=61129, + TableCellsSplit=61131, + TableChecker=61133, + TableColumnTopBottom=61135, + TableCopy=61137, + TableDeleteColumn=61139, + TableDeleteRow=61141, + TableDismiss=61143, + TableEdit=61145, + TableFreezeColumn=61147, + TableFreezeColumnAndRow=61149, + TableFreezeRow=61151, + TableImage=61153, + TableInsertColumn=61155, + TableInsertRow=61157, + TableLightning=61159, + TableLink=61161, + TableLock=61163, + TableMoveAbove=61165, + TableMoveBelow=61167, + TableMoveLeft=61169, + TableMoveRight=61171, + TableMultiple=61173, + TableOffset=61175, + TableOffsetAdd=61177, + TableOffsetLessThanOrEqualTo=61179, + TableOffsetSettings=61181, + TableResizeColumn=61183, + TableResizeRow=61185, + TableSearch=61187, + TableSettings=61189, + TableSimple=61191, + TableSimpleCheckmark=61193, + TableSimpleExclude=61195, + TableSimpleInclude=61197, + TableSimpleMultiple=61199, + TableSplit=61201, + TableStackAbove=61203, + TableStackBelow=61205, + TableStackLeft=61207, + TableStackRight=61209, + TableSwitch=61211, + Tablet=61213, + TabletLaptop=61215, + TabletSpeaker=61217, + Tabs=61219, + Tag=61221, + TagCircle=61223, + TagDismiss=61225, + TagError=61227, + TagLock=61229, + TagMultiple=61232, + TagOff=61234, + TagQuestionMark=61236, + TagReset=61238, + TagSearch=61240, + TapDouble=61242, + TapSingle=61244, + Target=61246, + TargetArrow=61248, + TargetEdit=61250, + TaskListAdd=61252, + TaskListLtr=61254, + TaskListRtl=61256, + TaskListSquareAdd=61258, + TaskListSquareDatabase=61260, + TaskListSquareLtr=61262, + TaskListSquarePerson=61264, + TaskListSquareRtl=61266, + TaskListSquareSettings=61268, + TasksApp=61270, + Teddy=61272, + Temperature=61274, + Tent=61276, + TetrisApp=61278, + TextAdd=61280, + TextAddSpaceAfter=61282, + TextAddSpaceBefore=61284, + TextAddT=61286, + TextAlignCenter=61288, + TextAlignCenterRotate270=61290, + TextAlignCenterRotate90=61292, + TextAlignDistributed=61294, + TextAlignDistributedEvenly=61296, + TextAlignDistributedVertical=61298, + TextAlignJustify=61300, + TextAlignJustifyLow=61302, + TextAlignJustifyLow90=61304, + TextAlignJustifyLowRotate270=61306, + TextAlignJustifyLowRotate90=61308, + TextAlignJustifyRotate270=61310, + TextAlignJustifyRotate90=61312, + TextAlignLeft=61314, + TextAlignLeftRotate270=61316, + TextAlignLeftRotate90=61318, + TextAlignRight=61320, + TextAlignRightRotate270=61322, + TextAlignRightRotate90=61324, + TextAsterisk=61326, + TextBaseline=61328, + TextBold=61330, + TextBoxSettings=61332, + TextBulletList=61334, + TextBulletList90=61336, + TextBulletListAdd=61338, + TextBulletListCheckmark=61340, + TextBulletListDismiss=61342, + TextBulletListLtr=61344, + TextBulletListLtr90=61346, + TextBulletListRtl=61348, + TextBulletListRtl90=61350, + TextBulletListSquare=61352, + TextBulletListSquareClock=61354, + TextBulletListSquareEdit=61356, + TextBulletListSquarePerson=61358, + TextBulletListSquareSearch=61360, + TextBulletListSquareSettings=61362, + TextBulletListSquareShield=61364, + TextBulletListSquareSparkle=61366, + TextBulletListSquareToolbox=61368, + TextBulletListSquareWarning=61370, + TextBulletListTree=61372, + TextCaseLowercase=61374, + TextCaseTitle=61376, + TextCaseUppercase=61378, + TextChangeCase=61380, + TextClearFormatting=61382, + TextCollapse=61384, + TextColor=61386, + TextColumnOne=61389, + TextColumnOneNarrow=61391, + TextColumnOneSemiNarrow=61393, + TextColumnOneWide=61395, + TextColumnOneWideLightning=61397, + TextColumnThree=61399, + TextColumnTwo=61401, + TextColumnTwoLeft=61403, + TextColumnTwoRight=61405, + TextColumnWide=61407, + TextContinuous=61409, + TextDensity=61411, + TextDescription=61413, + TextDescriptionLtr=61415, + TextDescriptionRtl=61417, + TextDirectionHorizontalLeft=61419, + TextDirectionHorizontalLtr=61421, + TextDirectionHorizontalRight=61423, + TextDirectionHorizontalRtl=61425, + TextDirectionRotate270Right=61427, + TextDirectionRotate315Right=61429, + TextDirectionRotate45Right=61431, + TextDirectionRotate90Left=61433, + TextDirectionRotate90Ltr=61435, + TextDirectionRotate90Right=61437, + TextDirectionRotate90Rtl=61439, + TextDirectionVertical=61441, + TextEditStyle=61443, + TextEffects=61445, + TextExpand=61447, + TextField=61449, + TextFirstLine=61451, + TextFont=61453, + TextFontInfo=61455, + TextFontSize=61457, + TextFootnote=61459, + TextGrammarArrowLeft=61461, + TextGrammarArrowRight=61463, + TextGrammarCheckmark=61465, + TextGrammarDismiss=61467, + TextGrammarError=61469, + TextGrammarSettings=61471, + TextGrammarWand=61473, + TextHanging=61475, + TextHeader1=61477, + TextHeader2=61479, + TextHeader3=61481, + TextIndentDecrease=61483, + TextIndentDecreaseLtr=61485, + TextIndentDecreaseLtr90=61487, + TextIndentDecreaseLtrRotate270=61489, + TextIndentDecreaseRotate270=61491, + TextIndentDecreaseRotate90=61493, + TextIndentDecreaseRtl=61495, + TextIndentDecreaseRtl90=61497, + TextIndentDecreaseRtlRotate270=61499, + TextIndentIncrease=61501, + TextIndentIncreaseLtr=61503, + TextIndentIncreaseLtr90=61505, + TextIndentIncreaseLtrRotate270=61507, + TextIndentIncreaseRotate270=61509, + TextIndentIncreaseRotate90=61511, + TextIndentIncreaseRtl=61513, + TextIndentIncreaseRtl90=61515, + TextIndentIncreaseRtlRotate270=61517, + TextItalic=61519, + TextLineSpacing=61521, + TextMore=61523, + TextNumberFormat=61525, + TextNumberListLtr=61527, + TextNumberListLtr90=61529, + TextNumberListLtrRotate270=61531, + TextNumberListRotate270=61533, + TextNumberListRotate90=61535, + TextNumberListRtl=61537, + TextNumberListRtl90=61539, + TextNumberListRtlRotate270=61541, + TextParagraph=61543, + TextParagraphDirection=61545, + TextParagraphDirectionLeft=61547, + TextParagraphDirectionRight=61549, + TextPeriodAsterisk=61551, + TextPositionBehind=61553, + TextPositionFront=61555, + TextPositionLine=61557, + TextPositionSquare=61559, + TextPositionSquareLeft=61561, + TextPositionSquareRight=61563, + TextPositionThrough=61565, + TextPositionTight=61567, + TextPositionTopBottom=61569, + TextProofingTools=61571, + TextQuote=61573, + TextSortAscending=61575, + TextSortDescending=61577, + TextStrikethrough=61579, + TextSubscript=61581, + TextSuperscript=61583, + TextT=61585, + TextUnderline=61587, + TextUnderlineCharacterU=61589, + TextUnderlineDouble=61591, + TextWholeWord=61593, + TextWordCount=61595, + TextWrap=61597, + TextWrapOff=61599, + Textbox=61601, + TextboxAlignBottom=61603, + TextboxAlignBottomCenter=61605, + TextboxAlignBottomLeft=61607, + TextboxAlignBottomRight=61609, + TextboxAlignBottomRotate90=61611, + TextboxAlignCenter=61613, + TextboxAlignMiddle=61615, + TextboxAlignMiddleLeft=61617, + TextboxAlignMiddleRight=61619, + TextboxAlignMiddleRotate90=61621, + TextboxAlignTop=61623, + TextboxAlignTopCenter=61625, + TextboxAlignTopLeft=61627, + TextboxAlignTopRight=61629, + TextboxAlignTopRotate90=61631, + TextboxMore=61633, + TextboxRotate90=61635, + TextboxSettings=61637, + Thinking=61639, + ThumbDislike=61641, + ThumbLike=61643, + ThumbLikeDislike=61645, + TicketDiagonal=61647, + TicketHorizontal=61649, + TimeAndWeather=61651, + TimePicker=61653, + Timeline=61655, + Timer10=61657, + Timer2=61659, + Timer=61661, + Timer3=61663, + TimerOff=61665, + ToggleLeft=61667, + ToggleMultiple=61669, + ToggleRight=61671, + Toolbox=61673, + TooltipQuote=61675, + TopSpeed=61677, + Translate=61679, + TranslateAuto=61681, + TranslateOff=61683, + Transmission=61685, + TrayItemAdd=61687, + TrayItemRemove=61689, + TreeDeciduous=61691, + TreeEvergreen=61693, + Triangle=61695, + TriangleDown=61697, + TriangleLeft=61699, + TriangleRight=61701, + TriangleUp=61703, + Trophy=61705, + TrophyLock=61707, + TrophyOff=61709, + Tv=61711, + TvArrowRight=61713, + TvUsb=61715, + Umbrella=61717, + UninstallApp=61719, + UsbPlug=61721, + UsbStick=61723, + Vault=61725, + VehicleBicycle=61727, + VehicleBus=61729, + VehicleCab=61731, + VehicleCableCar=61733, + VehicleCar=61735, + VehicleCarCollision=61737, + VehicleCarParking=61739, + VehicleCarProfile=61741, + VehicleCarProfileLtr=61743, + VehicleCarProfileLtrClock=61745, + VehicleCarProfileRtl=61747, + VehicleShip=61749, + VehicleSubway=61751, + VehicleTruck=61753, + VehicleTruckBag=61755, + VehicleTruckCube=61757, + VehicleTruckProfile=61759, + Video=61761, + Video360=61763, + Video360Off=61765, + VideoAdd=61767, + VideoBackgroundEffect=61769, + VideoBackgroundEffectHorizontal=61771, + VideoChat=61773, + VideoClip=61775, + VideoClipMultiple=61777, + VideoClipOff=61779, + VideoOff=61781, + VideoPerson=61783, + VideoPersonCall=61785, + VideoPersonClock=61787, + VideoPersonOff=61789, + VideoPersonSparkle=61791, + VideoPersonSparkleOff=61793, + VideoPersonStar=61795, + VideoPersonStarOff=61797, + VideoPlayPause=61799, + VideoProhibited=61801, + VideoRecording=61803, + VideoSecurity=61805, + VideoSwitch=61807, + VideoSync=61809, + ViewDesktop=61811, + ViewDesktopMobile=61813, + VirtualNetwork=61815, + VirtualNetworkToolbox=61817, + Voicemail=61819, + VoicemailArrowBack=61821, + VoicemailArrowForward=61823, + VoicemailArrowSubtract=61825, + VoicemailShield=61827, + VoicemailSubtract=61829, + Vote=61831, + WalkieTalkie=61833, + Wallet=61835, + WalletCreditCard=61837, + Wallpaper=61839, + Wand=61841, + Warning=61843, + WarningShield=61845, + Washer=61847, + Water=61849, + WeatherBlowingSnow=61851, + WeatherCloudy=61853, + WeatherDrizzle=61855, + WeatherDuststorm=61857, + WeatherFog=61859, + WeatherHailDay=61861, + WeatherHailNight=61863, + WeatherHaze=61865, + WeatherMoon=61867, + WeatherMoonOff=61869, + WeatherPartlyCloudyDay=61871, + WeatherPartlyCloudyNight=61873, + WeatherRain=61875, + WeatherRainShowersDay=61877, + WeatherRainShowersNight=61879, + WeatherRainSnow=61881, + WeatherSnow=61883, + WeatherSnowShowerDay=61885, + WeatherSnowShowerNight=61887, + WeatherSnowflake=61889, + WeatherSqualls=61891, + WeatherSunny=61893, + WeatherSunnyHigh=61895, + WeatherSunnyLow=61897, + WeatherThunderstorm=61899, + WebAsset=61901, + Whiteboard=61903, + Wifi1=61905, + Wifi2=61907, + Wifi3=61909, + Wifi4=61911, + WifiLock=61913, + WifiOff=61915, + WifiSettings=61917, + WifiWarning=61919, + Window=61921, + WindowAd=61923, + WindowAdOff=61925, + WindowAdPerson=61927, + WindowApps=61929, + WindowArrowUp=61931, + WindowBulletList=61933, + WindowBulletListAdd=61935, + WindowConsole=61937, + WindowDatabase=61939, + WindowDevEdit=61941, + WindowDevTools=61943, + WindowEdit=61945, + WindowHeaderHorizontal=61947, + WindowHeaderHorizontalOff=61949, + WindowHeaderVertical=61951, + WindowInprivate=61953, + WindowInprivateAccount=61955, + WindowLocationTarget=61957, + WindowMultiple=61959, + WindowMultipleSwap=61961, + WindowNew=61963, + WindowPlay=61965, + WindowSettings=61967, + WindowShield=61969, + WindowText=61971, + WindowWrench=61973, + Wrench=61975, + WrenchScrewdriver=61977, + XboxConsole=61979, + XboxController=61981, + XboxControllerError=61983, + Xray=61985, + ZoomFit=61987, + ZoomIn=61989, + ZoomOut=61991 +}; +Q_ENUM_NS(RibbonIcons_Regular) +QML_NAMED_ELEMENT(RibbonIcons) +QML_UNCREATABLE("This type is right-valued only.") +} + +namespace RibbonThemeType { +Q_NAMESPACE +enum class ThemeMode { + System = 0x0000, + Light = 0x0001, + Dark = 0x0002, +}; +Q_ENUM_NS(ThemeMode) +QML_NAMED_ELEMENT(RibbonThemeType) +QML_UNCREATABLE("This type is right-valued only.") +} + + +#define Q_PROPERTY_RW(TYPE, M) \ +Q_PROPERTY(TYPE M MEMBER _##M NOTIFY M##Changed FINAL) \ +public: \ + Q_SIGNAL void M##Changed(); \ + void M(TYPE in_##M) \ + { \ + _##M = in_##M; \ + Q_EMIT M##Changed(); \ + } \ + TYPE M() \ + { \ + return _##M; \ + } \ + \ +private: \ + TYPE _##M; + +#define Q_PROPERTY_R(TYPE, M) \ +Q_PROPERTY(TYPE M READ M NOTIFY M##Changed FINAL) \ +public: \ + Q_SIGNAL void M##Changed(); \ + TYPE M() \ + { \ + return _##M; \ + } \ +private: \ + TYPE _##M; + +namespace RibbonPopupDialogType { +Q_NAMESPACE +enum ButtonFlag { + NeutralButton = 0x0001, + NegativeButton = 0x0002, + PositiveButton = 0x0004 +}; +Q_ENUM_NS(ButtonFlag) +QML_NAMED_ELEMENT(RibbonPopupDialogType) +} +#endif // DEFINITIONS_H diff --git a/lib_source/effects/gaussianblur.frag b/lib_source/effects/gaussianblur.frag new file mode 100644 index 0000000..e3aba31 --- /dev/null +++ b/lib_source/effects/gaussianblur.frag @@ -0,0 +1,42 @@ +#version 440 + +layout(location = 0) in vec2 qt_TexCoord0; +layout(location = 0) out vec4 fragColor; + +layout(std140, binding = 0) uniform buf { + mat4 qt_Matrix; + float qt_Opacity; + vec2 pixelStep; + int radius; + float deviation; +}; +layout(binding = 1) uniform sampler2D src; + +#define PI 3.1415926538 + +float gaussianWeight(vec2 coords) +{ + float x2 = pow(coords.x, 2.0); + float y2 = pow(coords.y, 2.0); + float deviation2 = pow(deviation, 2.0); + + return (1.0 / (2.0 * PI * deviation2)) * exp(-(x2 + y2) / (2.0 * deviation2)); +} + +void main(void) +{ + vec4 sum = vec4(0.0); + + float gaussianSum = 0.0; + for (int x = -radius; x <= radius; ++x) { + for (int y = -radius; y <= radius; ++y) { + vec2 c = qt_TexCoord0 + vec2(x, y) * pixelStep; + float w = gaussianWeight(vec2(x, y)); + vec4 color = texture(src, c); + sum += color * w; + gaussianSum += w; + } + } + + fragColor = sum / gaussianSum * qt_Opacity; +} \ No newline at end of file diff --git a/lib_source/qml/RibbonBlur.qml b/lib_source/qml/RibbonBlur.qml new file mode 100644 index 0000000..114de50 --- /dev/null +++ b/lib_source/qml/RibbonBlur.qml @@ -0,0 +1,41 @@ +import QtQuick +import Qt5Compat.GraphicalEffects +import RibbonUI + +Rectangle { + id: control + color: "transparent" + property int blur_radius: 32 + property alias target: effect.sourceItem + property rect target_rect : Qt.rect(control.x, control.y, control.width, control.height) + property color mask_color: RibbonTheme.dark_mode ? "#212629" : "white" + property double mask_opacity: 0.5 + property alias mask_border: mask.border + + ShaderEffectSource { + id: effect + anchors.fill: parent + sourceRect: target_rect + sourceItem: target + layer.enabled: true + layer.effect: FastBlur{ + radius: blur_radius + } + } + Rectangle{ + id: mask + anchors.fill: parent + color: mask_color + opacity: mask_opacity + radius: control.radius + } +// ShaderEffect{ +// id:blur +// anchors.fill: parent +// property var src: effect +// property int radius: blur_radius +// property real deviation: 8 +// property var pixelStep: Qt.vector2d(1/src.width, 1/src.height) +// fragmentShader: "qrc:/RibbonUI/effects/gaussianblur.frag.qsb" +// } +} diff --git a/lib_source/qml/RibbonBottomBar.qml b/lib_source/qml/RibbonBottomBar.qml new file mode 100644 index 0000000..d6a5a44 --- /dev/null +++ b/lib_source/qml/RibbonBottomBar.qml @@ -0,0 +1,83 @@ +import QtQuick +import QtQuick.Layouts +import RibbonUI + +Item { + id: root + height: 25 + clip: true + + property alias left_content: left.data + property alias right_content: right.data + default property alias content: left.data + property bool modern_style: RibbonTheme.modern_style + property bool dark_mode: RibbonTheme.dark_mode + property bool show_version: true + property double bg_opacity: 0.8 + + anchors{ + left: parent.left + right: parent.right + bottom: parent.bottom + } + + Rectangle{ + visible: !modern_style + color: "#3D3D3D" + anchors.fill: parent + opacity: bg_opacity + gradient: Gradient { + GradientStop { position: 0.0; color: dark_mode ? "#474949" : "#E4E3E4" } + GradientStop { position: 0.5; color: dark_mode ? "#434444" : "#DFDEDE" } + GradientStop { position: 1.0; color: dark_mode ? "#3D3D3D" : "#D9D9D9" } + } + } + + Rectangle{ + visible: modern_style + color: dark_mode ? "#141414" : "#F5F5F5" + opacity: bg_opacity + anchors.fill: parent + } + + Rectangle{ + anchors{ + top: parent.top + left: parent.left + right: parent.right + } + color: dark_mode ? modern_style ? "#3B3A39":"#282828" : modern_style ? "white":"#A1A2A2" + height: 1 + } + + RowLayout{ + id: left + Layout.maximumWidth: parent.width - right.width + height: parent.height + spacing: 1 + anchors{ + left: parent.left + leftMargin: 20 + } + } + + RowLayout{ + id: right + Layout.maximumWidth: parent.width - left.width + height: parent.height + spacing: 1 + anchors{ + right: parent.right + rightMargin: 20 + } + layoutDirection: Qt.RightToLeft + RibbonButton{ + visible: show_version + show_bg:false + text: `Designed with RibbonUI V${RibbonUI.version}` + adapt_height: true + show_tooltip: false + onClicked: Qt.openUrlExternally("https://github.com/mentalfl0w/RibbonUI") + } + } +} diff --git a/lib_source/qml/RibbonButton.qml b/lib_source/qml/RibbonButton.qml new file mode 100644 index 0000000..5779fce --- /dev/null +++ b/lib_source/qml/RibbonButton.qml @@ -0,0 +1,126 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import RibbonUI + +Button { + id: root + property bool dark_mode: RibbonTheme.dark_mode + property bool show_bg: true + property bool show_hovered_bg: true + property bool adapt_height: false + property bool show_tooltip: true + property var icon_source + property var icon_source_filled + property alias image_icon: pic_icon + property alias ribbon_icon: rib_icon + property string bg_color: dark_mode ? "#626262" : "white" + property string hover_color: dark_mode ? show_bg ? "#818181" : "#5E5D5D" : show_bg ? "#ECEAE9" : "#B0B0B1" + property string pressed_color: dark_mode ? show_bg ? "#424242" : "#5C5C5C" : show_bg ? "#CCCBCB" : "#9D9B9B" + property string checked_color: pressed_color + property string text_color: dark_mode ? "white" : "black" + property bool text_color_reverse: true + property string tip_text: text + opacity: enabled ? 1.0 : 0.3 + padding: 0 + leftPadding: 0 + rightPadding: 0 + focusPolicy:Qt.TabFocus + background: Rectangle{ + implicitWidth: contentItem.implicitWidth + implicitHeight: contentItem.implicitHeight + visible: show_bg + border.color: dark_mode ? "#7F7F7F" : "#D2D1CE" + border.width: 1 + radius: 3 + color: bg_color + } + contentItem: Item{ + implicitWidth: layout.width + 13 + implicitHeight: adapt_height?root.parent.height>=layout.height?root.parent.height:layout.height:layout.height + 10 + Rectangle{ + anchors.fill: parent + radius: 3 + color: { + if (root.pressed) + return pressed_color + if (root.hovered) + return hover_color + if (root.checked) + return checked_color + return "transparent" + } + visible: show_hovered_bg + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + RowLayout{ + id: layout + anchors.centerIn: parent + height: Math.max(rib_icon.visible ? rib_icon.contentHeight : 0, pic_icon.visible ? pic_icon.height : 0, label.contentHeight) + + width: { + let w = 0 + w += rib_icon.visible ? rib_icon.contentWidth : 0 + w += pic_icon.visible ? pic_icon.width : 0 + w += label.text ? label.contentWidth : 0 + w += (rib_icon.visible || pic_icon.visible) && label.text ? spacing : 0 + return w + } + + RibbonIcon{ + id :rib_icon + icon_source: typeof(root.icon_source) === "number" ? root.icon_source : 0 + icon_source_filled: typeof(root.icon_source_filled) === "number" ? root.icon_source_filled : icon_source + icon_size: label.contentHeight + visible: typeof(root.icon_source) === "number" + Layout.alignment: Qt.AlignVCenter + filled: pressed || checked + color: { + if (!show_bg && (hovered || checked || pressed) && text_color_reverse) + return Qt.lighter(text_color) + else + return text_color + } + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + Image { + id: pic_icon + source: typeof(root.icon_source) === "string" ? root.icon_source : "" + visible: typeof(root.icon_source) === "string" + fillMode:Image.PreserveAspectFit + height: label.contentHeight + width: height + Layout.alignment: Qt.AlignVCenter + } + Text { + id: label + text: root.text + Layout.alignment: Qt.AlignVCenter + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + font.pixelSize: 12 + font.family: Qt.platform.os === "osx" ? "PingFang SC" : "Microsoft YaHei UI" + color: { + if (!show_bg && (hovered || checked || pressed) && text_color_reverse) + return Qt.lighter(text_color) + else + return text_color + } + } + } + RibbonToolTip{ + text: tip_text + visible: hovered && show_tooltip && text + } + } +} diff --git a/lib_source/qml/RibbonCheckBox.qml b/lib_source/qml/RibbonCheckBox.qml new file mode 100644 index 0000000..e063c4e --- /dev/null +++ b/lib_source/qml/RibbonCheckBox.qml @@ -0,0 +1,90 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import RibbonUI + +Button { + id: control + padding: 0 + leftPadding: 0 + rightPadding: 0 + focusPolicy:Qt.TabFocus + checkable: true + + property bool dark_mode: RibbonTheme.dark_mode + property int btn_size: 20 + property string border_color: dark_mode ? "white" : "black" + property double border_width: 1.4 + property string icon_color: "white" + property string icon_filled_bg_color: "#2143AB" + property string text_color: dark_mode ? "white" : "black" + property int text_size: 11 + property bool text_bold: false + property bool text_on_left: false + property bool show_tooltip: false + property string tip_text: text + + background: Item{} + contentItem: Item{ + id: item + implicitHeight: btn_layout.height + btn_layout.margins*2 + implicitWidth: btn_layout.width + btn_layout.margins*2 + RowLayout{ + id: btn_layout + property int margins: 4 + anchors.centerIn: parent + layoutDirection: control.text_on_left ? Qt.RightToLeft : Qt.LeftToRight + Rectangle { + id: bg + implicitHeight: control.btn_size + implicitWidth: implicitHeight + color: "transparent" + border{ + color: control.border_color + width: control.border_width + } + radius: 4.5 + Rectangle{ + id: bg_fill + anchors.fill: parent + scale: control.hovered || control.pressed ? 0.6 : 1.05 + radius: 4.5 + color: !control.pressed?control.icon_filled_bg_color:Qt.darker(control.icon_filled_bg_color) + visible: control.hovered || control.pressed || control.checked + Behavior on scale{ + NumberAnimation{ + duration: 150 + easing.type: Easing.OutSine + } + } + } + RibbonIcon{ + id: check_icon + anchors.centerIn: bg + icon_source: RibbonIcons.Checkmark + icon_source_filled: RibbonIcons_Filled.Checkmark + font.pixelSize: bg.height-4 + filled: checked + visible: control.pressed || control.checked + color: !control.pressed?control.icon_color:Qt.darker(control.icon_color) + } + RibbonToolTip{ + text: tip_text + visible: hovered && show_tooltip && text + } + } + Text { + id:label + text:control.text + Layout.alignment: Qt.AlignVCenter + font{ + family: Qt.platform.os === "osx" ? "PingFang SC" : "Microsoft YaHei UI" + pixelSize: control.text_size + bold: control.text_bold + } + color: text_color + visible: text + } + } + } +} diff --git a/lib_source/qml/RibbonComboBox.qml b/lib_source/qml/RibbonComboBox.qml new file mode 100644 index 0000000..b432586 --- /dev/null +++ b/lib_source/qml/RibbonComboBox.qml @@ -0,0 +1,203 @@ +import QtQuick +import QtQuick.Controls +import RibbonUI + +ComboBox { + id: control + property bool dark_mode: RibbonTheme.dark_mode + property int icon_source + implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, + implicitContentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, + implicitContentHeight + topPadding + bottomPadding, + implicitIndicatorHeight + topPadding + bottomPadding) + + leftPadding: padding + (!control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing) + rightPadding: padding + (control.mirrored || !indicator || !indicator.visible ? 0 : indicator.width + spacing) + font.pixelSize: 13 + + opacity: enabled ? 1.0 : 0.3 + + delegate: ItemDelegate { + id: item + padding: 6 + width: ListView.view.width + text: control.textRole ? (Array.isArray(control.model) ? modelData[control.textRole] : model[control.textRole]) : modelData + palette.text: control.palette.text + palette.highlightedText: control.palette.highlightedText + highlighted: control.highlightedIndex === index + hoverEnabled: control.hoverEnabled + contentItem: RibbonText{ + id:label + view_only: true + text: item.text + font.pixelSize: control.font.pixelSize + font.weight: control.currentIndex === index ? Font.DemiBold : Font.Normal + color: dark_mode ? "white" : highlighted ? "white" : "black" + } + background: Rectangle{ + implicitWidth: item.width - 10 + implicitHeight: label.contentHeight + 14 + color: !dark_mode ? "#506BBD" : "#2A4299" + visible: down || highlighted || visualFocus + radius: 4 + } + } + + indicator: RibbonIcon{ + x: control.mirrored ? control.padding : control.width - width - control.padding + y: control.topPadding + (control.availableHeight - height) / 2 + padding: 5 + icon_size: 15 + icon_source: RibbonIcons.ChevronDown + rotation: control.down ? 180 : 0 + color: dark_mode ? "white" : "black" + + Behavior on rotation { + NumberAnimation{ + duration: 100 + easing.type: Easing.OutSine + } + } + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + + contentItem: RibbonLineEdit { + id: edit + leftPadding: (!control.mirrored ? 12 : control.editable && activeFocus ? 3 : 1) + icon.visible ? icon.contentWidth + padding*2 : 0 + rightPadding: (control.mirrored ? 12 : control.editable && activeFocus ? 3 : 1) + clear_btn.visible ? clear_btn.width + padding*2 : 0 + topPadding: 6 - control.padding + bottomPadding: 6 - control.padding + + text: control.editable ? control.editText : control.displayText + + enabled: control.editable + autoScroll: control.editable + readOnly: control.down + inputMethodHints: control.inputMethodHints + validator: control.validator + selectByMouse: control.selectTextByMouse + + opacity: 1 + + font: control.font + color: dark_mode ? "white" : "black" + selectionColor: dark_mode ? "#4F5E7F" : "#BECDE8" + selectedTextColor: dark_mode ? "white" : "black" + verticalAlignment: Text.AlignVCenter + + icon_source: control.icon_source + + onCommit: { + accepted() + } + + background: Rectangle{ + visible: control.enabled && control.editable && !control.flat + radius: 4 + implicitHeight: 20 + implicitWidth: 140 + color: "transparent" + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + } + + background: Rectangle { + implicitWidth: 150 + implicitHeight: 20 + radius: 4 + color: { + color: { + if (control.down) + return dark_mode ? "#858585" : "#C9CACA" + if (control.hovered) + return dark_mode ? "#5A5B5A" : "#E4E4E4" + return dark_mode ? "#383838" : "#FFFFFF" + } + } + RibbonRectangle{ + color: dark_mode ? "#383838" : "#FFFFFF" + anchors.verticalCenter: parent.verticalCenter + anchors.left: parent.left + anchors.leftMargin: parent.border.width + radius: parent.radius + topRightRadius: 0 + bottomRightRadius: 0 + width: parent.width - parent.border.width * 2 - indicator.width + height: parent.height - parent.border.width * 2 + } + + border.color: edit.cursorVisible ? dark_mode ? "#869CCD" : "#486495" : dark_mode ? "#5E5F5E" : "#B9B9B8" + border.width: 1 + visible: !control.flat || control.down + } + + popup: Popup { + id: pop + y: control.height + width: control.width + height: origin_height + property int origin_height: Math.min(contentItem.implicitHeight, control.Window.height - topMargin - bottomMargin) + topMargin: 6 + bottomMargin: 6 + + contentItem: ListView { + clip: true + implicitHeight: contentHeight + model: control.delegateModel + currentIndex: control.highlightedIndex + highlightMoveDuration: 0 + ScrollIndicator.vertical: ScrollIndicator { } + } + + background: RibbonBlur{ + radius: 5 + mask_opacity: 1 + mask_border.color: RibbonTheme.dark_mode ? "#5C5D5D" : "#B5B4B5" + mask_border.width: 1 + } + + enter: Transition { + NumberAnimation { + properties: "height" + from:0 + to: pop.origin_height + duration: 100 + easing.type: Easing.OutSine + } + NumberAnimation { + property: "opacity" + duration: 100 + from:0 + to:1 + easing.type: Easing.OutSine + } + } + exit:Transition { + NumberAnimation { + properties: "height" + from: pop.origin_height + to:0 + duration: 100 + easing.type: Easing.OutSine + } + NumberAnimation { + property: "opacity" + duration: 100 + from:1 + to:0 + easing.type: Easing.OutSine + } + } + } +} diff --git a/lib_source/qml/RibbonIcon.qml b/lib_source/qml/RibbonIcon.qml new file mode 100644 index 0000000..cd2337b --- /dev/null +++ b/lib_source/qml/RibbonIcon.qml @@ -0,0 +1,29 @@ +import QtQuick +import QtQuick.Controls +import RibbonUI + +Text { + property int icon_source + property int icon_size: 20 + property bool filled: false + property int icon_source_filled + + onIcon_sourceChanged: { + if (typeof(icon_source_filled) === 'undefined' || icon_source_filled === icon_source) + icon_source_filled = icon_source - 1 + } + + color: "black" + id:text_icon + font.family: loader.name + font.pixelSize: icon_size + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + text: (String.fromCharCode(filled ? icon_source_filled : icon_source).toString(16)) + + FontLoader{ + id: loader + source: "qrc:/RibbonUI/resources/FluentSystemIcons-Resizable.ttf" + } + +} diff --git a/lib_source/qml/RibbonLineEdit.qml b/lib_source/qml/RibbonLineEdit.qml new file mode 100644 index 0000000..25235e0 --- /dev/null +++ b/lib_source/qml/RibbonLineEdit.qml @@ -0,0 +1,90 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import RibbonUI + +TextField{ + id: control + autoScroll:true + property bool dark_mode: RibbonTheme.dark_mode + property int icon_source + property bool show_clear_btn: true + property alias clear_btn: clear_btn + property alias icon: icon + focus: true + color: dark_mode ? "white" : "black" + padding: 5 + leftPadding: icon.visible ? icon.contentWidth + padding*2 : padding + rightPadding: clear_btn.visible ? clear_btn.width + padding*2 : padding + placeholderText: qsTr("Please input:") + placeholderTextColor: dark_mode ? Qt.rgba(255,255,255,0.5) : Qt.rgba(0,0,0,0.5) + selectByMouse: true + selectionColor: dark_mode ? "#4F5E7F" : "#BECDE8" + selectedTextColor: dark_mode ? "white" : "black" + opacity: enabled ? 1.0 : 0.3 + signal commit() + width:150 + height:20 + onCommit: cursorVisible = false + background: Rectangle{ + radius: 4 + implicitHeight: 20 + implicitWidth: 150 + color: dark_mode ? "#383838" : "#FFFFFF" + border.color: control.cursorVisible ? dark_mode ? "#869CCD" : "#486495" : dark_mode ? "#5E5F5E" : "#B9B9B8" + border.width: 1 + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + Keys.onEnterPressed: commit() + Keys.onReturnPressed: commit() + MouseArea{ + anchors.fill: parent + cursorShape: Qt.IBeamCursor + acceptedButtons: Qt.RightButton + onClicked: control.echoMode !== TextInput.Password && menu.popup() + focus: true + } + RibbonTextBoxMenu{ + id:menu + input_item: control + } + RibbonIcon{ + id: icon + anchors{ + left: parent.left + leftMargin: parent.padding + verticalCenter: parent.verticalCenter + } + icon_source: parent.icon_source + icon_size: parent.height - parent.padding + visible: icon_source + color: dark_mode ? "white" : "black" + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + RibbonButton{ + id: clear_btn + anchors{ + right: parent.right + rightMargin: parent.padding + verticalCenter: parent.verticalCenter + } + show_bg: false + show_hovered_bg: false + tip_text: qsTr("Clear") + icon_source: RibbonIcons.Dismiss + height: parent.height - parent.padding + width: height + visible: parent.text&&show_clear_btn&&control.cursorVisible + onClicked: parent.clear() + } +} diff --git a/lib_source/qml/RibbonMenu.qml b/lib_source/qml/RibbonMenu.qml new file mode 100644 index 0000000..a9d8551 --- /dev/null +++ b/lib_source/qml/RibbonMenu.qml @@ -0,0 +1,57 @@ +import QtQuick +import QtQuick.Controls +import RibbonUI + +Menu { + id:control + implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, + contentWidth + leftPadding + rightPadding) + implicitHeight: Math.min(Math.max(implicitBackgroundHeight + topInset + bottomInset, + contentHeight + topPadding + bottomPadding)) + overlap: 1 + padding: 5 + property bool dark_mode: RibbonTheme.dark_mode + property string bg_color: !dark_mode ? "#E8E9E9" : "#303131" + enter: Transition { + NumberAnimation { + property: "opacity" + from:0 + to: 1 + duration: 70 + easing.type: Easing.OutSine + } + } + exit:Transition { + NumberAnimation { + property: "opacity" + from: 1 + to:0 + duration: 70 + easing.type: Easing.OutSine + } + } + delegate: RibbonMenuItem{} + contentItem: ListView { + implicitHeight: contentHeight + model: control.contentModel + interactive: Window.window + ? contentHeight + control.topPadding + control.bottomPadding > Window.window.height + : false + clip: true + currentIndex: control.currentIndex + ScrollIndicator.vertical: ScrollIndicator {} + } + + background: Rectangle { + implicitWidth: 250 + implicitHeight: 20 + layer.enabled: true + layer.effect: RibbonShadow{ + shadow_color: "black" + } + border.color: dark_mode ? "#5C5D5D" : "#B5B4B5" + border.width: 1 + color: bg_color + radius: 4 + } +} diff --git a/lib_source/qml/RibbonMenuItem.qml b/lib_source/qml/RibbonMenuItem.qml new file mode 100644 index 0000000..0742b91 --- /dev/null +++ b/lib_source/qml/RibbonMenuItem.qml @@ -0,0 +1,125 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import RibbonUI + +MenuItem { + id: control + property bool dark_mode: RibbonTheme.dark_mode + property var icon_source + property var icon_source_filled + property bool show_tooltip: label.contentWidth < label.implicitWidth + property alias image_icon: pic_icon + property alias ribbon_icon: rib_icon + property string bg_color: !dark_mode ? "#E8E9E9" : "#303131" + property string hover_color: !dark_mode ? "#506BBD" : "#2A4299" + property string text_color: dark_mode ? "white" : hovered ? "white" : "black" + implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, + implicitContentWidth + leftPadding + rightPadding) + implicitHeight: visible ? Math.max(implicitBackgroundHeight + topInset + bottomInset, + implicitContentHeight + topPadding + bottomPadding, + implicitIndicatorHeight + topPadding + bottomPadding) : 0 + opacity: enabled ? 1.0 : 0.3 + padding: 0 + leftPadding: 12 + rightPadding: 0 + verticalPadding: 0 + focusPolicy:Qt.TabFocus + spacing: 5 + + indicator: RibbonIcon { + x: control.text ? (control.mirrored ? control.width - width - control.rightPadding : control.leftPadding) : control.leftPadding + (control.availableWidth - width) / 2 + y: control.topPadding + (control.availableHeight - height) / 2 + visible: control.checkable || control.checked + filled: control.hovered || control.pressed + icon_source: control.checked ? RibbonIcons.CheckmarkCircle : RibbonIcons.Circle + icon_source_filled: control.checked ? RibbonIcons_Filled.CheckmarkCircle : RibbonIcons_Filled.Circle + color: text_color + icon_size: label.contentHeight + } + + arrow: RibbonIcon { + x: control.mirrored ? control.padding : control.width - width - control.padding + y: control.topPadding + (control.availableHeight - height) / 2 + color: text_color + visible: control.subMenu + icon_source: RibbonIcons.ChevronCircleRight + icon_source_filled: RibbonIcons_Filled.ChevronCircleRight + icon_size: label.contentHeight + } + + contentItem: Item{ + RowLayout{ + readonly property real arrowPadding: control.subMenu && control.arrow ? control.arrow.width + control.spacing : 0 + readonly property real indicatorPadding: control.checkable && control.indicator ? control.indicator.width + control.spacing : 0 + anchors.leftMargin: !control.mirrored ? indicatorPadding : arrowPadding + anchors.rightMargin: control.mirrored ? indicatorPadding : arrowPadding + anchors.fill: parent + spacing: control.spacing + height: Math.max(rib_icon.visible ? rib_icon.contentHeight : 0, pic_icon.visible ? pic_icon.height : 0, label.contentHeight) + layoutDirection: control.mirrored ? Qt.RightToLeft : Qt.LeftToRight + width: { + let w = control.width + w = w - arrowPadding - indicatorPadding - 25 + return w + } + + RibbonIcon{ + id :rib_icon + icon_source: typeof(control.icon_source) === "number" ? control.icon_source : 0 + icon_source_filled: typeof(control.icon_source_filled) === "number" ? control.icon_source_filled : icon_source + icon_size: label.contentHeight + visible: typeof(control.icon_source) === "number" + Layout.alignment: Qt.AlignVCenter + filled: pressed || checked + color: text_color + } + Image { + id: pic_icon + source: typeof(control.icon_source) === "string" ? control.icon_source : "" + visible: typeof(control.icon_source) === "string" + fillMode:Image.PreserveAspectFit + height: label.contentHeight + width: height + Layout.alignment: Qt.AlignVCenter + } + Text { + id: label + text: control.text + Layout.alignment: Qt.AlignVCenter + verticalAlignment: Text.AlignVCenter + font.pixelSize: 13 + elide: Text.ElideRight + font.family: Qt.platform.os === "osx" ? "PingFang SC" : "Microsoft YaHei UI" + color: text_color + Layout.preferredWidth:{ + let w = 0 + w += rib_icon.visible ? rib_icon.contentWidth : 0 + w += pic_icon.visible ? pic_icon.width : 0 + w += (rib_icon.visible || pic_icon.visible) && label.text ? spacing : 0 + return parent.width - w + } + } + RibbonToolTip{ + id: tooltip + visible: hovered && show_tooltip && control.text + text: control.text + } + } + } + + background: Item { + implicitWidth: 230 + implicitHeight: label.contentHeight + 14 + Rectangle { + anchors.centerIn: parent + anchors.margins: 6 + width: parent.width + height: parent.height - anchors.margins / 2 + + clip: visible + radius: 4 + color: control.hovered ?hover_color : bg_color + } + } +} diff --git a/lib_source/qml/RibbonMenuSeparator.qml b/lib_source/qml/RibbonMenuSeparator.qml new file mode 100644 index 0000000..dafa88e --- /dev/null +++ b/lib_source/qml/RibbonMenuSeparator.qml @@ -0,0 +1,24 @@ +import QtQuick +import QtQuick.Controls +import RibbonUI + +MenuSeparator { + id: control + property bool dark_mode: RibbonTheme.dark_mode + property string color: dark_mode ? "#4A4B4C" : "#D1D2D2" + implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, + implicitContentWidth + leftPadding + rightPadding) + implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, + implicitContentHeight + topPadding + bottomPadding) + + padding: 0 + leftPadding: 10 + rightPadding: leftPadding + verticalPadding: 0 + + contentItem: Rectangle { + implicitWidth: 230 + implicitHeight: 1 + color: control.color + } +} diff --git a/lib_source/qml/RibbonPaperView.qml b/lib_source/qml/RibbonPaperView.qml new file mode 100644 index 0000000..5887a3c --- /dev/null +++ b/lib_source/qml/RibbonPaperView.qml @@ -0,0 +1,37 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import RibbonUI + +RibbonView { + id: control + property int page_width: width * 0.7 + property int page_height: 1000 + default property alias content: container.data + Rectangle{ + id: container_bg + Layout.alignment: Qt.AlignTop | Qt.AlignHCenter + Layout.topMargin: modern_style ? 20 : 30 + Layout.bottomMargin: modern_style ? 20 : 30 + radius: modern_style ? 10 : 5 + color: dark_mode ? "#262626" : "white" + implicitWidth: control.page_width + implicitHeight: control.page_height + layer.enabled: true + layer.effect: RibbonShadow { + id: effect + shadow_opacity:modern_style ? 0.2 : 0.5 + } + ColumnLayout{ + id:container + spacing: control.spacing + clip: true + anchors{ + top: parent.top + left: parent.left + right: parent.right + } + width: parent.width + } + } +} diff --git a/lib_source/qml/RibbonPopup.qml b/lib_source/qml/RibbonPopup.qml new file mode 100644 index 0000000..649a3ac --- /dev/null +++ b/lib_source/qml/RibbonPopup.qml @@ -0,0 +1,92 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import QtQuick.Window +import RibbonUI +import Qt5Compat.GraphicalEffects + +Popup { + id: popup + padding: 0 + modal: true + anchors.centerIn: Overlay.overlay + closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside + property bool show_close_btn: true + property bool blur_enabled: false + property alias target: blur.target + property alias target_rect: blur.target_rect + property alias radius: blur.radius + enter: Transition { + NumberAnimation { + properties: "scale" + from:0.5 + to:1 + duration: 100 + easing.type: Easing.OutSine + } + NumberAnimation { + property: "opacity" + duration: 100 + from:0 + to:1 + easing.type: Easing.OutSine + } + } + exit:Transition { + NumberAnimation { + properties: "scale" + from:1 + to:0.5 + duration: 100 + easing.type: Easing.OutSine + } + NumberAnimation { + property: "opacity" + duration: 100 + from:1 + to:0 + easing.type: Easing.OutSine + } + } + background: Item{ + RectangularGlow { + id: effect + anchors.fill: blur + anchors.margins: blur.border.width + glowRadius: 20 + spread: 0 + color: RibbonTheme.dark_mode ? Qt.rgba(255,255,255,0.1) : Qt.rgba(0,0,0,0.1) + cornerRadius: blur.radius + glowRadius + 10 + } + RibbonBlur{ + implicitHeight: parent.height + implicitWidth: parent.width + id: blur + radius: 20 + mask_opacity: blur_enabled ? 0.5 : 1 + mask_border.color: RibbonTheme.dark_mode ? "#5C5D5D" : "#B5B4B5" + mask_border.width: 1 + } + } + contentItem: Item{ + RibbonButton{ + anchors{ + top:parent.top + topMargin: 8 + right:parent.right + rightMargin: topMargin + } + show_bg: false + show_hovered_bg: false + icon_source: RibbonIcons.Dismiss + onClicked: close() + visible: show_close_btn + } + } + Overlay.modal:Rectangle{ + color:"transparent" + } + Overlay.modeless:Rectangle{ + color:"transparent" + } +} diff --git a/lib_source/qml/RibbonPopupDialog.qml b/lib_source/qml/RibbonPopupDialog.qml new file mode 100644 index 0000000..338afb2 --- /dev/null +++ b/lib_source/qml/RibbonPopupDialog.qml @@ -0,0 +1,119 @@ +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls +import QtQuick.Window +import RibbonUI + +RibbonPopup { + id: control + property string title: "Title" + property string message: "Message" + property string neutralText: "Neutral" + property string negativeText: "Negative" + property string positiveText: "Positive" + property bool dark_mode: RibbonTheme.dark_mode + show_close_btn: false + radius: 5 + signal neutralClicked + signal negativeClicked + signal positiveClicked + property int buttonFlags: RibbonPopupDialogType.NegativeButton | RibbonPopupDialogType.PositiveButton + focus: true + implicitWidth: 250 + implicitHeight: text_title.height + text_message.height + layout_actions.height + layout_actions.anchors.topMargin + layout_actions.anchors.bottomMargin + Rectangle { + id:layout_content + anchors.fill: parent + color: 'transparent' + radius:5 + RibbonText{ + id:text_title + font.pixelSize: 24 + text:title + view_only: true + topPadding: 15 + leftPadding: 15 + rightPadding: 15 + wrapMode: Text.WrapAnywhere + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + anchors{ + top:parent.top + left: parent.left + right: parent.right + } + } + RibbonText{ + id:text_message + font.pixelSize: 13 + wrapMode: Text.WrapAnywhere + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + text:message + view_only: true + topPadding: 15 + leftPadding: 15 + rightPadding: 15 + bottomPadding: 15 + anchors{ + top:text_title.bottom + left: parent.left + right: parent.right + } + } + RowLayout{ + id:layout_actions + anchors{ + topMargin: 15 + left: parent.left + leftMargin: 15 + right: parent.right + rightMargin: 15 + bottom: parent.bottom + bottomMargin: 15 + } + height: 30 + spacing: 15 + RibbonButton{ + id:negative_btn + Layout.fillWidth: true + Layout.fillHeight: true + visible: control.buttonFlags&RibbonPopupDialogType.NegativeButton + text: negativeText + show_tooltip: false + onClicked: { + negativeClicked() + control.close() + } + } + RibbonButton{ + id:neutral_btn + Layout.fillWidth: true + Layout.fillHeight: true + visible: control.buttonFlags&RibbonPopupDialogType.NeutralButton + text: neutralText + show_tooltip: false + onClicked: { + neutralClicked() + control.close() + } + } + RibbonButton{ + id:positive_btn + Layout.fillWidth: true + Layout.fillHeight: true + visible: control.buttonFlags&RibbonPopupDialogType.PositiveButton + text: positiveText + show_tooltip: false + bg_color: dark_mode ? "#8AAAEB" : "#2C59B7" + text_color: "white" + hover_color: dark_mode ? Qt.rgba(255, 255, 255, 0.3) : Qt.rgba(0, 0, 0, 0.3) + pressed_color: dark_mode ? Qt.rgba(255, 255, 255, 0.5) : Qt.rgba(0,0,0, 0.5) + onClicked: { + positiveClicked() + control.close() + } + } + } + } +} diff --git a/lib_source/qml/RibbonPushButton.qml b/lib_source/qml/RibbonPushButton.qml new file mode 100644 index 0000000..be19039 --- /dev/null +++ b/lib_source/qml/RibbonPushButton.qml @@ -0,0 +1,130 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import RibbonUI + +Item { + id: root + property bool dark_mode: RibbonTheme.dark_mode + property bool show_tooltip: true + property var icon_source + property string hover_color: dark_mode ? "#414140" : "#D8D9D9" + property string pressed_color: dark_mode ? "#5B5B5C" : "#BCBCBC" + property string buddy_hover_color: dark_mode ? "#383838" : "#E1E1E1" + property string text_color: dark_mode ? "white" : "black" + property string tip_text: text + property string text + default property alias content: m.contentData + property int icon_size: height + signal clicked() + opacity: enabled ? 1.0 : 0.3 + implicitWidth: left.width + right.width + implicitHeight: left.height + RowLayout{ + id: btn + anchors.centerIn: parent + spacing: 0 + RibbonRectangle{ + id: left + topLeftRadius: 3 + bottomLeftRadius: topLeftRadius + topRightRadius:m.count ? 0 : topLeftRadius + bottomRightRadius:m.count ? 0 : topLeftRadius + implicitWidth: label.contentWidth > 40 ? label.contentWidth - (m.count ? 5 : -5) : 40 + implicitHeight: 40 + color: { + if (left_th.pressed) + return pressed_color + if (left_hh.hovered) + return hover_color + if (right_hh.hovered) + return buddy_hover_color + return "transparent" + } + RibbonIcon{ + id :rib_icon + anchors.centerIn: parent + icon_source: typeof(root.icon_source) === "number" ? root.icon_source : 0 + icon_source_filled: typeof(root.icon_source) === "number" ? root.icon_source - 1 : 0 + icon_size: root.icon_size + visible: typeof(root.icon_source) === "number" + Layout.alignment: Qt.AlignVCenter + filled: left_th.pressed + color: text_color + } + Image { + id: pic_icon + anchors.centerIn: parent + source: typeof(root.icon_source) === "string" ? root.icon_source : "" + visible: typeof(root.icon_source) === "string" + fillMode:Image.PreserveAspectFit + height: icon_size + width: height + Layout.alignment: Qt.AlignVCenter + } + HoverHandler{ + id: left_hh + } + TapHandler{ + id: left_th + onTapped: clicked() + } + } + RibbonRectangle{ + id: right + topRightRadius:3 + bottomRightRadius:3 + implicitWidth: 12 + implicitHeight: 40 + visible: m.count + color: { + if (right_th.pressed||m.opened) + return pressed_color + if (right_hh.hovered) + return hover_color + if (left_hh.hovered) + return buddy_hover_color + return "transparent" + } + RibbonIcon{ + anchors.centerIn: parent + icon_source: RibbonIcons.ChevronDown + icon_source_filled: RibbonIcons.ChevronDown - 1 + icon_size: 15 + Layout.alignment: Qt.AlignVCenter + filled: right_th.pressed + color: text_color + } + HoverHandler{ + id: right_hh + } + TapHandler{ + id: right_th + onTapped: m.popup() + } + } + RibbonToolTip{ + text: tip_text + visible: (left_hh.hovered || right_hh.hovered)&& show_tooltip && text + } + } + + RibbonMenu{ + id:m + width: 100 + } + + Text { + id: label + text: root.text + anchors{ + top: btn.bottom + horizontalCenter: btn.horizontalCenter + } + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + font.pixelSize: 12 + font.family: Qt.platform.os === "osx" ? "PingFang SC" : "Microsoft YaHei UI" + color: text_color + } +} diff --git a/lib_source/qml/RibbonRectangle.qml b/lib_source/qml/RibbonRectangle.qml new file mode 100644 index 0000000..138d1e7 --- /dev/null +++ b/lib_source/qml/RibbonRectangle.qml @@ -0,0 +1,69 @@ +import QtQuick +import QtQuick.Controls +import Qt5Compat.GraphicalEffects + +Item { + id: control + property string color + property int radius: 0 + property int topLeftRadius: radius + property int topRightRadius: radius + property int bottomLeftRadius: radius + property int bottomRightRadius: radius + default property alias contentItem: container.data + onWidthChanged: { + canvas.requestPaint() + } + onHeightChanged: { + canvas.requestPaint() + } + onTopLeftRadiusChanged: { + canvas.requestPaint() + } + onTopRightRadiusChanged: { + canvas.requestPaint() + } + onBottomLeftRadiusChanged: { + canvas.requestPaint() + } + onBottomRightRadiusChanged: { + canvas.requestPaint() + } + onColorChanged: { + canvas.requestPaint() + } + Canvas { + id: canvas + anchors.fill: parent + + onPaint: { + var ctx = getContext("2d") + ctx.clearRect(0, 0, width, height) + ctx.beginPath() + ctx.moveTo(control.topLeftRadius, 0) + ctx.lineTo(width - control.topRightRadius, 0) + ctx.arcTo(width, 0, width, control.topRightRadius, control.topRightRadius) + ctx.lineTo(width, height - control.bottomRightRadius) + ctx.arcTo(width, height, width - control.bottomRightRadius, height, control.bottomRightRadius) + ctx.lineTo(control.bottomLeftRadius, height) + ctx.arcTo(0, height, 0, height - control.bottomLeftRadius, control.bottomLeftRadius) + ctx.lineTo(0, control.topLeftRadius) + ctx.arcTo(0, 0, control.topLeftRadius, 0, control.topLeftRadius) + ctx.closePath() + ctx.fillStyle = control.color + ctx.fill() + } + } + Rectangle { + id: container + anchors.fill: parent + color: control.color + opacity: 0 + } + OpacityMask { + anchors.fill: canvas + source: container + maskSource: canvas + invert: control.color === "transparent" + } +} diff --git a/lib_source/qml/RibbonShadow.qml b/lib_source/qml/RibbonShadow.qml new file mode 100644 index 0000000..776d269 --- /dev/null +++ b/lib_source/qml/RibbonShadow.qml @@ -0,0 +1,14 @@ +import QtQuick +import Qt5Compat.GraphicalEffects +import RibbonUI + +DropShadow { + property double shadow_opacity: 0.2 + property color shadow_color: RibbonTheme.dark_mode ? "white" : "black" + transparentBorder: true + color: Qt.rgba(shadow_color.r,shadow_color.g,shadow_color.b,shadow_opacity) + radius: 8 + horizontalOffset: 0 + verticalOffset: 0 + spread: 0 +} diff --git a/lib_source/qml/RibbonSlider.qml b/lib_source/qml/RibbonSlider.qml new file mode 100644 index 0000000..f5ff680 --- /dev/null +++ b/lib_source/qml/RibbonSlider.qml @@ -0,0 +1,169 @@ +import QtQuick +import QtQuick.Controls +import Qt5Compat.GraphicalEffects +import RibbonUI + +Item { + id: control + height: horizontal ? container.implicitHeight : container.implicitWidth + width: horizontal ? container.implicitWidth : show_button ? Math.max(container.implicitHeight,subtract_button.width,add_button.width) : container.implicitHeight + property bool show_tooltip: true + property bool show_filled_color: true + property bool show_button: true + property bool horizontal: true + property int slide_width: 150 + property int slide_height: 4 + property alias value: slide.value + property bool dark_mode: RibbonTheme.dark_mode + + Item{ + id: container + anchors.centerIn: parent + implicitHeight: slide.implicitHeight + implicitWidth: slide.implicitWidth + add_button.width + subtract_button.width + rotation: horizontal ? 0 : -90 + RibbonButton{ + id: add_button + anchors{ + right: parent.right + verticalCenter: parent.verticalCenter + } + height: parent.height -3 + icon_source: RibbonIcons.Add + icon_source_filled: RibbonIcons_Filled.Add + show_bg: false + show_tooltip: false + show_hovered_bg: false + rotation: horizontal ? 0 : 90 + visible: show_button + enabled: slide.value !== 100 + text_color: dark_mode ? "white" : "black" + opacity: enabled ? 1 : 0.2 + onClicked: + { + tooltip.show(slide.value,1000) + slide.increase() + } + Behavior on text_color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + + RibbonButton{ + id: subtract_button + anchors{ + left: parent.left + verticalCenter: parent.verticalCenter + } + height: parent.height -3 + show_bg: false + show_tooltip: false + show_hovered_bg: false + icon_source: RibbonIcons.Subtract + icon_source_filled: RibbonIcons_Filled.Subtract + rotation: horizontal ? 0 : 90 + visible: show_button + text_color: dark_mode ? "white" : "black" + opacity: enabled ? 1 : 0.2 + enabled: slide.value !== 0 + onClicked: + { + tooltip.show(slide.value,1000) + slide.decrease() + } + Behavior on text_color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + + Slider { + id: slide + to: 100 + stepSize: 1 + anchors{ + leftMargin: -5 + left: show_button ? subtract_button.right : parent.left + right: show_button ? add_button.left : parent.right + rightMargin: -5 + verticalCenter: add_button.verticalCenter + } + implicitWidth: Math.max(implicitBackgroundWidth + leftPadding + rightPadding, implicitHandleWidth + leftPadding + rightPadding) + implicitHeight: Math.max(implicitBackgroundHeight + topPadding + bottomPadding, implicitHandleHeight + topPadding + bottomPadding) + property int slide_length: 150 + property int slide_width: 5 + handle: Rectangle{ + x: slide.leftPadding + (slide.horizontal ? slide.visualPosition * (slide.availableWidth - width) : (slide.availableWidth - width) / 2) + y: slide.topPadding + (slide.horizontal ? (slide.availableHeight - height) / 2 : slide.visualPosition * (slide.availableHeight - height)) - 1 + implicitWidth: 12 + implicitHeight: 12 + color: dark_mode ? "#A1A2A1" : "#EDEEEE" + radius: 12 + layer.enabled: true + layer.effect: RibbonShadow { + shadow_opacity: 0.2 + shadow_color: "black" + } + scale: slide.pressed ? 1.1 : slide.hovered ? 1.2 : 1 + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + Behavior on scale { + NumberAnimation{ + duration: 150 + easing.type: Easing.OutSine + } + } + } + background: Item { + x: slide.leftPadding + (slide.horizontal ? 0 : (slide.availableWidth - width) / 2) + y: slide.topPadding + (slide.horizontal ? (slide.availableHeight - height) / 2 : 0) - 1 + implicitWidth: slide.horizontal ? control.slide_width : control.slide_height + implicitHeight: slide.horizontal ? control.slide_height : control.slide_width + width: slide.horizontal ? slide.availableWidth : implicitWidth + height: slide.horizontal ? implicitHeight : slide.availableHeight + Rectangle{ + anchors.fill: parent + radius: 2 + color: dark_mode ? "#7C7C7C" : "#8F8F8F" + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + scale: slide.horizontal && slide.mirrored ? -1 : 1 + Rectangle { + y: slide.horizontal ? 0 : slide.visualPosition * parent.height + width: slide.horizontal ? slide.position * parent.width : control.slide_height + height: slide.horizontal ? control.slide_height : slide.position * parent.height + radius: 3 + color: show_filled_color ? dark_mode ? "#8AAAEB" : "#5DA3E8" : dark_mode ? "#7C7C7C" : "#8F8F8F" + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + } + } + + RibbonToolTip{ + id: tooltip + parent: slide.handle + visible: show_tooltip && slide.pressed + text: slide.value + } + } +} + diff --git a/lib_source/qml/RibbonSpinBox.qml b/lib_source/qml/RibbonSpinBox.qml new file mode 100644 index 0000000..3027bfe --- /dev/null +++ b/lib_source/qml/RibbonSpinBox.qml @@ -0,0 +1,100 @@ +import QtQuick +import QtQuick.Controls +import RibbonUI + +SpinBox { + id: control + property bool dark_mode: RibbonTheme.dark_mode + property int icon_source + + font.pixelSize: 13 + + implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, + 90 /* minimum */ ) + implicitHeight: Math.max(implicitBackgroundHeight, up.implicitIndicatorHeight + down.implicitIndicatorHeight) + + topInset + bottomInset + + spacing: 2 + + + // Push the background right to make room for the indicators + rightInset: up.implicitIndicatorWidth + spacing + + leftPadding: 0 + topPadding: 0 + rightPadding: 0 + bottomPadding: 0 + + + validator: IntValidator { + locale: control.locale.name + bottom: Math.min(control.from, control.to) + top: Math.max(control.from, control.to) + } + + contentItem: RibbonLineEdit { + text: control.displayText + font: control.font + color: dark_mode ? "white" : "black" + selectionColor: dark_mode ? "#4F5E7F" : "#BECDE8" + selectedTextColor: dark_mode ? "white" : "black" + horizontalAlignment: Qt.AlignLeft + verticalAlignment: Qt.AlignVCenter + icon_source: control.icon_source + icon.icon_size: 16 + + topPadding: 2 + bottomPadding: 2 + leftPadding: 10 + icon.visible ? icon.contentWidth + padding*2 : 0 + rightPadding: (10 + clear_btn.visible ? clear_btn.width + padding*2 : 0) + up.indicator.width + + readOnly: !control.editable + validator: control.validator + inputMethodHints: control.inputMethodHints + } + + up.indicator: RibbonButton{ + z: 1 + x: parent.width - width + y: (parent.height / 2) - height + 2 + implicitWidth: 20 - 2 + implicitHeight: 12 - 2 + icon_source: RibbonIcons.ChevronUp + ribbon_icon.icon_size: 10 + show_bg: false + show_tooltip: false + onHoveredChanged: control.up.hovered = hovered + onPressedChanged: control.up.pressed = pressed + onClicked: increase() + } + + down.indicator: RibbonButton{ + z:1 + x: parent.width - width + y: (parent.height / 2) - height - 1 + up.indicator.height + implicitWidth: 20 - 2 + implicitHeight: 12 - 2 + icon_source: RibbonIcons.ChevronDown + ribbon_icon.icon_size: 10 + show_bg: false + show_tooltip: false + onHoveredChanged: control.down.hovered = hovered + onPressedChanged: control.down.pressed = pressed + onClicked: decrease() + } + + background: Rectangle { + implicitWidth: 80 + implicitHeight: 25 + radius: 4 + color: { + color: { + if (control.down) + return dark_mode ? "#858585" : "#C9CACA" + if (control.hovered) + return dark_mode ? "#5A5B5A" : "#E4E4E4" + return dark_mode ? "#383838" : "#FFFFFF" + } + } + } +} diff --git a/lib_source/qml/RibbonSwitchButton.qml b/lib_source/qml/RibbonSwitchButton.qml new file mode 100644 index 0000000..a528b82 --- /dev/null +++ b/lib_source/qml/RibbonSwitchButton.qml @@ -0,0 +1,205 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import RibbonUI + +Button { + id: control + padding: 0 + leftPadding: 0 + rightPadding: 0 + focusPolicy:Qt.TabFocus + checkable: true + + property bool dark_mode: RibbonTheme.dark_mode + property bool show_grabber_text: true + property string grabber_text: control.checked ? qsTr("Open") : qsTr("Close") + property string text_color: dark_mode ? "white" : "black" + property int text_size: 11 + property string grabber_checked_color: dark_mode ? "#8AAAEB" : "#2850A4" + property string grabber_unchecked_color: dark_mode ? "#292929" : "white" + property string grabber_text_checked_color: dark_mode ? "black" : "white" + property string grabber_text_unchecked_color: dark_mode ? "white" : "black" + property string grabber_color: dark_mode ? control.pressed ? "#F8F8F8" : "white" : control.pressed ? "#4D4D4D":"#616161" + property string border_color: dark_mode ? "white" : "#616161" + property double border_width: 1.4 + property bool text_bold: false + property bool text_on_left: false + property bool show_tooltip: false + property string tip_text: text + + background:Item{} + contentItem:Item{ + id: item + implicitHeight: btn_layout.height + btn_layout.margins*2 + implicitWidth: btn_layout.width + btn_layout.margins*2 + RowLayout{ + id: btn_layout + property int margins: 4 + spacing: 4 + anchors.centerIn: parent + layoutDirection: control.text_on_left ? Qt.RightToLeft : Qt.LeftToRight + Item{ + id: btn + implicitHeight: 20 + implicitWidth: control.show_grabber_text ? 20 + grabber_text.anchors.margins * 2 + grabber_text.contentWidth : 40 + Rectangle{ + id:bg + implicitWidth: btn.implicitWidth + border.width + implicitHeight: btn.implicitHeight + border.width + anchors.verticalCenter: parent.verticalCenter + border.color: border_color + border.width: border_width + radius: 12 + states: [ + State{ + name:"checked" + when: control.checked + PropertyChanges { + target: bg + color: grabber_checked_color + } + }, + State{ + name:"unchecked" + when: !control.checked + PropertyChanges { + target: bg + color: grabber_unchecked_color + } + } + ] + transitions: [ + Transition { + from: "checked" + to:"unchecked" + ColorAnimation { + from: grabber_checked_color + to: grabber_unchecked_color + duration: 200 + easing.type: Easing.OutSine + } + }, + Transition { + from: "unchecked" + to:"checked" + ColorAnimation { + from: grabber_unchecked_color + to: grabber_checked_color + duration: 200 + easing.type: Easing.OutSine + } + } + ] + } + Rectangle{ + id: grabber + implicitHeight: bg.implicitHeight - anchors.margins*2 + implicitWidth:implicitHeight + radius: width / 2 + color: grabber_color + anchors{ + verticalCenter: parent.verticalCenter + margins: 4 + } + scale: control.hovered && !control.pressed ? 1.2 : control.pressed ? 1.1 : 1.0 + x: control.checked ? btn.implicitWidth - anchors.margins - implicitWidth : anchors.margins + z: 1 + Behavior on x { + NumberAnimation{ + duration: 150 + easing.type: Easing.OutSine + } + } + Behavior on scale { + NumberAnimation{ + duration: 150 + easing.type: Easing.OutSine + } + } + layer.enabled: true + layer.effect: RibbonShadow{ + shadow_opacity: 0.2 + shadow_color: "black" + } + } + Text { + id: grabber_text + text: control.grabber_text + anchors.verticalCenter: parent.verticalCenter + anchors.margins: 4 + visible: control.show_grabber_text + x: control.checked ? grabber.x - anchors.margins - contentWidth : grabber.x + grabber.width + anchors.margins + z: 0 + font{ + family: Qt.platform.os === "osx" ? "PingFang SC" : "Microsoft YaHei UI" + pixelSize: 9 + bold: true + } + Behavior on x { + NumberAnimation{ + duration: 150 + easing.type: Easing.OutSine + } + } + states: [ + State{ + name:"checked" + when: control.checked + PropertyChanges { + target: grabber_text + color: grabber_text_checked_color + } + }, + State{ + name:"unchecked" + when: !control.checked + PropertyChanges { + target: grabber_text + color: grabber_text_unchecked_color + } + } + ] + transitions: [ + Transition { + from: "checked" + to:"unchecked" + ColorAnimation { + from: grabber_text_checked_color + to: grabber_text_unchecked_color + duration: 200 + easing.type: Easing.OutSine + } + }, + Transition { + from: "unchecked" + to:"checked" + ColorAnimation { + from: grabber_text_checked_color + to: grabber_text_unchecked_color + duration: 200 + easing.type: Easing.OutSine + } + } + ] + } + RibbonToolTip{ + text: tip_text + visible: hovered && show_tooltip && text + } + } + Text { + id:label + text:control.text + Layout.alignment: Qt.AlignVCenter + font{ + family: Qt.platform.os === "osx" ? "PingFang SC" : "Microsoft YaHei UI" + pixelSize: control.text_size + bold: control.text_bold + } + color: text_color + visible: text + } + } + } +} diff --git a/lib_source/qml/RibbonTabBar.qml b/lib_source/qml/RibbonTabBar.qml new file mode 100644 index 0000000..eb99a5f --- /dev/null +++ b/lib_source/qml/RibbonTabBar.qml @@ -0,0 +1,302 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt5Compat.GraphicalEffects +import RibbonUI + +Item{ + id: root + height: folded ? top_border.height + bar.contentHeight + bottom_border.height: modern_style ? 200 : 180 + anchors{ + top: parent.top + left: parent.left + right:parent.right + } + clip: true + property bool folded: false + property int last_index + default property alias content: stack.contentData + property alias right_tool_bar: tool_bar.data + property bool modern_style: RibbonTheme.modern_style + property bool dark_mode: RibbonTheme.dark_mode + property string bg_color: dark_mode ? "#2D2D2D" : "#F4F5F3" + property double bg_opacity: 0.8 + property string border_color: dark_mode ? "black" : "#CCCCCC" + + Component { + id: ribbonTabButton + RibbonTabButton{ + } + } + + Rectangle { + id: top_border + anchors.top: parent.top + width: parent.width + height: 1 + color: modern_style ? "transparent" : bg_color + opacity:bg_opacity + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + + Item { + id:bg + anchors + { + top: modern_style ? bar.bottom : top_border.bottom + left: parent.left + right: parent.right + bottom:bottom_border.top + topMargin: modern_style ? 10 :0 + leftMargin: modern_style ? 10 :0 + rightMargin: modern_style ? 10 :0 + bottomMargin: modern_style ? 10 :0 + } + clip: true + opacity:bg_opacity + + Rectangle{ + anchors.fill: parent + color: bg_color + opacity:bg_opacity + radius: modern_style ? 10 :0 + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + } + + RibbonShadow { + id: effect + enabled: modern_style + visible: modern_style + source: bg + anchors.fill: bg + } + + TabBar { + id: bar + z:1 + anchors{ + top:top_border.bottom + left: parent.left + right:tool_bar.left + } + + background: Item{} + position: TabBar.Header + currentIndex: stack.currentIndex + } + + RowLayout{ + id: tool_bar + z:2 + spacing: 10 + width: 200 + height: bar.contentHeight + layoutDirection: Qt.RightToLeft + anchors{ + top:top_border.bottom + right:parent.right + rightMargin: tool_bar.spacing + } + } + + SwipeView { + id: stack + z:0 + anchors{ + top:bar.bottom + left: parent.left + right:parent.right + } + clip: true + property int origin_height: root.height - bar.contentHeight - top_border.height * 2 + height: origin_height + currentIndex: bar.currentIndex + background: Item{ + anchors{ + fill: parent + topMargin: modern_style ? 10 :0 + leftMargin: modern_style ? 10 :0 + rightMargin: modern_style ? 10 :0 + bottomMargin: modern_style ? 10 :0 + } + } + contentItem: ListView { + anchors{ + fill: parent + topMargin: modern_style ? 10 :0 + leftMargin: modern_style ? 10 :0 + rightMargin: modern_style ? 10 :0 + bottomMargin: modern_style ? 10 :0 + } + clip: true + model: stack.contentModel + interactive: stack.interactive + currentIndex: stack.currentIndex + focus: stack.focus + + spacing: stack.spacing + orientation: stack.orientation + snapMode: ListView.SnapOneItem + boundsBehavior: Flickable.StopAtBounds + + highlightRangeMode: ListView.StrictlyEnforceRange + preferredHighlightBegin: 0 + preferredHighlightEnd: 0 + highlightMoveDuration: 250 + maximumFlickVelocity: 4 * (stack.orientation === Qt.Horizontal ? width : height) + RibbonButton{ + anchors{ + right: parent.right + bottom: parent.bottom + rightMargin: 5 + bottomMargin: 5 + } + icon_source: RibbonIcons.ChevronDown + Behavior on rotation { + NumberAnimation{ + duration: 100 + easing.type: Easing.OutSine + } + } + rotation: folded ? 0 : 180 + onClicked: folded = !folded + show_bg: false + show_hovered_bg: false + tip_text: folded ? qsTr("Show") : qsTr("Hide") + text_color: dark_mode ? "white" : "black" + } + } + + states: [ + State{ + name:"fold" + when: root.folded + PropertyChanges { + target: stack + height:0 + } + }, + State{ + name:"unfold" + when: !root.folded + PropertyChanges { + target: stack + height:origin_height + } + } + ] + transitions: [ + Transition { + from: "fold" + to:"unfold" + NumberAnimation { + properties: "height" + duration: 167 + easing.type: Easing.OutSine + } + }, + Transition { + from: "unfold" + to:"fold" + NumberAnimation { + properties: "height" + duration: 167 + easing.type: Easing.OutSine + } + } + ] + Component.onCompleted: { + for (let i=0,sign=0; i < stack.contentData.length; i++) + { + var item = stack.contentData[i] + if(item instanceof RibbonTabPage){ + let btn = ribbonTabButton.createObject(bar,{text:qsTr(item.title),index:i}) + if (sign===0) + { + btn.checked = true + sign++ + } + btn.need_fold.connect(hide_stack) + root.foldedChanged.connect(function(){btn.setFolded(folded)}) + } + } + } + } + + Rectangle { + id: bottom_border + anchors.top: stack.bottom + width: parent.width + height: 1 + color: modern_style ? "transparent" : bg_color + opacity:bg_opacity + Rectangle{ + anchors{ + left: parent.left + right: parent.right + bottom: parent.bottom + } + z: 3 + color: border_color + height: 1 + visible: !modern_style + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + + Behavior on height { + NumberAnimation { + duration: 167 + easing.type: Easing.OutSine + } + } + + Timer{ + id: timer + interval: 500 + repeat: false + onTriggered: folded = false + } + + //onModern_styleChanged: refresh() + + function hide_stack(need_hide, index) + { + if (typeof(last_index)==='undefined'||last_index===index||last_index!==index&&!need_hide) + { + folded = need_hide && !folded + } + last_index = index + } + + function refresh() + { + if(!folded) + { + folded = true + timer.start() + } + } +} diff --git a/lib_source/qml/RibbonTabButton.qml b/lib_source/qml/RibbonTabButton.qml new file mode 100644 index 0000000..01d64a5 --- /dev/null +++ b/lib_source/qml/RibbonTabButton.qml @@ -0,0 +1,79 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import RibbonUI + +TabButton { + id: control + signal need_fold(bool needed, int index) + property bool folded: false + property int index + property bool dark_mode: RibbonTheme.dark_mode + property string underline_unchecked_color: dark_mode ? "#666666" : RibbonTheme.modern_style ? "#A2A2A2" : "#D1D1D1" + property string underline_checked_color: dark_mode ? "#8AAAEB" : "#2E4C93" + property string font_color: dark_mode ? "white" : "black" + + background: Item{} + contentItem: Item{ + implicitHeight:btn_text.contentHeight + 8 + implicitWidth: btn_text.contentWidth + + Text { + id :btn_text + text: control.text + font{ + family: Qt.platform.os === "osx" ? "PingFang SC" : "Microsoft YaHei UI" + pixelSize: 13 + bold: true + } + color: font_color + height: contentHeight + anchors{ + centerIn: parent + } + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + + Rectangle{ + id: btn_underline + height: 3 + width: control.hovered && control.checked && !folded ? btn_text.contentWidth + 15 : btn_text.contentWidth + color: { + + if (control.hovered && (!control.checked || folded)) + return underline_unchecked_color + if (control.checked && !folded) + return underline_checked_color + return "transparent" + } + radius: 3 + anchors + { + horizontalCenter: parent.horizontalCenter + bottom: parent.bottom + bottomMargin: 1 + } + Behavior on width { + NumberAnimation{ + duration: 150 + easing.type: Easing.OutSine + } + } + } + } + width: implicitWidth + 15 + height: implicitHeight + 6 + onClicked: { + need_fold(checked&&!folded, index) + } + + function setFolded(value) + { + folded = value + } +} diff --git a/lib_source/qml/RibbonTabGroup.qml b/lib_source/qml/RibbonTabGroup.qml new file mode 100644 index 0000000..f56980e --- /dev/null +++ b/lib_source/qml/RibbonTabGroup.qml @@ -0,0 +1,69 @@ +import QtQuick +import QtQuick.Layouts +import RibbonUI + +Item { + id:control + width: container.width + property alias text: label.text + property alias show_border: line.visible + default property alias content: container.data + property int contenHeight: container.height + property bool dark_mode: RibbonTheme.dark_mode + property string font_color: dark_mode ? "white" : "black" + property string border_color: dark_mode ? "#525252" : "#D4D4D4" + Layout.fillHeight: true + clip: true + + Text { + id :label + text: control.text + font{ + family: Qt.platform.os === "osx" ? "PingFang SC" : "Microsoft YaHei UI" + pixelSize: 12 + bold: true + } + color: font_color + height: contentHeight + anchors{ + horizontalCenter: control.horizontalCenter + bottom: control.bottom + bottomMargin: 5 + } + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + + Rectangle{ + id: line + width: 1 + height: control.height - label.anchors.bottomMargin*3 + color: border_color + anchors{ + verticalCenter: control.verticalCenter + right:control.right + } + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + + Item { + id: container + anchors{ + top: control.top + left: control.left + right: line.left + bottom: label.text ? label.top : control.bottom + margins: 5 + } + clip: true + } +} diff --git a/lib_source/qml/RibbonTabPage.qml b/lib_source/qml/RibbonTabPage.qml new file mode 100644 index 0000000..d62781f --- /dev/null +++ b/lib_source/qml/RibbonTabPage.qml @@ -0,0 +1,17 @@ +import QtQuick +import QtQuick.Layouts + +Item { + property string title + default property alias content: container.data + clip: true + RowLayout{ + id: container + spacing: 0 + anchors{ + top:parent.top + bottom:parent.bottom + left: parent.left + } + } +} diff --git a/lib_source/qml/RibbonText.qml b/lib_source/qml/RibbonText.qml new file mode 100644 index 0000000..6e86903 --- /dev/null +++ b/lib_source/qml/RibbonText.qml @@ -0,0 +1,35 @@ +import QtQuick +import QtQuick.Controls +import RibbonUI + +TextEdit { + id: control + readOnly: true + color: dark_mode ? "white" : "black" + property bool dark_mode: RibbonTheme.dark_mode + property bool view_only: false + padding: 0 + topPadding: 0 + leftPadding: 0 + rightPadding: 0 + bottomPadding: 0 + selectByMouse: true + selectionColor: dark_mode ? "#4F5E7F" : "#BECDE8" + selectedTextColor: dark_mode ? "white" : "black" + wrapMode: TextEdit.WrapAnywhere + onSelectedTextChanged: { + control.forceActiveFocus() + } + enabled: !view_only + font.family: Qt.platform.os === "osx" ? "PingFang SC" : "Microsoft YaHei UI" + MouseArea{ + anchors.fill: parent + cursorShape: Qt.IBeamCursor + acceptedButtons: Qt.RightButton + onClicked: control.echoMode !== TextInput.Password && menu.popup() + } + RibbonTextBoxMenu{ + id:menu + input_item: control + } +} diff --git a/lib_source/qml/RibbonTextBoxMenu.qml b/lib_source/qml/RibbonTextBoxMenu.qml new file mode 100644 index 0000000..82d58cd --- /dev/null +++ b/lib_source/qml/RibbonTextBoxMenu.qml @@ -0,0 +1,46 @@ +import QtQuick +import QtQuick.Controls +import RibbonUI + +RibbonMenu{ + property var input_item + id:menu + width: 100 + onVisibleChanged: { + input_item.forceActiveFocus() + } + Connections{ + target: input_item + function onTextChanged() { + menu.close() + } + } + RibbonMenuItem{ + text: qsTr("Cut") + visible: input_item.selectedText !== "" && !input_item.readOnly + onClicked: { + input_item.cut() + } + } + RibbonMenuItem{ + text: qsTr("Copy") + visible: input_item.selectedText !== "" + onClicked: { + input_item.copy() + } + } + RibbonMenuItem{ + text: qsTr("Paste") + visible: input_item.canPaste + onClicked: { + input_item.paste() + } + } + RibbonMenuItem{ + text: qsTr("Select All") + visible: input_item.text !== "" + onClicked: { + input_item.selectAll() + } + } +} diff --git a/lib_source/qml/RibbonTextEdit.qml b/lib_source/qml/RibbonTextEdit.qml new file mode 100644 index 0000000..fc1e875 --- /dev/null +++ b/lib_source/qml/RibbonTextEdit.qml @@ -0,0 +1,112 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import RibbonUI + +Item{ + id: control + property alias text: textedit.text + property alias icon_source: textedit.icon_source + property alias show_clear_btn: textedit.show_clear_btn + property alias textedit: textedit + property int max_height: 80 + property bool dark_mode: RibbonTheme.dark_mode + signal commit() + width: 150 + height: Math.min(flickview.contentHeight, max_height) + Flickable{ + id: flickview + anchors.fill: parent + contentWidth: parent.width + contentHeight: textedit.implicitHeight + ScrollBar.vertical: ScrollBar { + anchors.right: flickview.right + anchors.rightMargin: 2 + } + boundsBehavior: Flickable.StopAtBounds + clip: true + TextArea.flickable:TextArea { + id: textedit + property int icon_source + property bool show_clear_btn: true + focus: true + color: dark_mode ? "white" : "black" + padding: 5 + leftPadding: icon.visible ? icon.contentWidth + padding*2 : padding + rightPadding: clear_btn.visible ? clear_btn.width + padding*2 : padding + placeholderText: qsTr("Please input:") + placeholderTextColor: dark_mode ? Qt.rgba(255,255,255,0.5) : Qt.rgba(0,0,0,0.5) + selectByMouse: true + selectionColor: dark_mode ? "#4F5E7F" : "#BECDE8" + selectedTextColor: dark_mode ? "white" : "black" + wrapMode: Text.WrapAnywhere + opacity: enabled ? 1.0 : 0.3 + + signal commit() + onCommit: { + cursorVisible = false + control.commit() + } + background: Rectangle{ + id:bg + radius: 4 + color: dark_mode ? "#383838" : "#FFFFFF" + border.color: textedit.cursorVisible ? dark_mode ? "#869CCD" : "#486495" : dark_mode ? "#5E5F5E" : "#B9B9B8" + border.width: 1 + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + Keys.onEnterPressed: commit() + Keys.onReturnPressed: commit() + MouseArea{ + anchors.fill: parent + cursorShape: Qt.IBeamCursor + acceptedButtons: Qt.RightButton + onClicked: textedit.echoMode !== TextInput.Password && menu.popup() + focus: true + } + RibbonTextBoxMenu{ + id:menu + input_item: textedit + } + } + } + RibbonIcon{ + id: icon + anchors{ + left: parent.left + leftMargin: textedit.padding + verticalCenter: parent.verticalCenter + } + icon_source: textedit.icon_source + icon_size: 26 - textedit.padding + visible: icon_source + color: dark_mode ? "white" : "black" + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + RibbonButton{ + id: clear_btn + anchors{ + right: parent.right + rightMargin: textedit.padding + verticalCenter: parent.verticalCenter + } + show_bg: false + show_hovered_bg: false + tip_text: qsTr("Clear") + icon_source: RibbonIcons.Dismiss + height: 26 - textedit.padding + width: height + visible: textedit.text&&show_clear_btn&&textedit.cursorVisible + onClicked: textedit.clear() + } +} diff --git a/lib_source/qml/RibbonTitleBar.qml b/lib_source/qml/RibbonTitleBar.qml new file mode 100644 index 0000000..a105a81 --- /dev/null +++ b/lib_source/qml/RibbonTitleBar.qml @@ -0,0 +1,150 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import RibbonUI + +Item { + id: control + height: 30 + property string title: Window.window.title + property bool show_style_switch: true + property bool show_darkmode_btn: true + property bool dark_mode: RibbonTheme.dark_mode + property bool modern_style: RibbonTheme.modern_style + property string title_color: modern_style ? "transparent" : dark_mode ? "#282828" : "#2C59B7" + property string title_text_color: modern_style ? dark_mode ? "white" : "black" : "white" + default property alias content: left_container.data + property alias left_content: left_container.data + property alias right_content: right_container.data + anchors { + top: parent.top + left: parent.left + right: parent.right + } + z: 100 + + Rectangle{ + id: bg + anchors.fill: parent + color: title_color + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + + Text { + id: title_text + anchors.centerIn: parent + text: control.title + font.family: Qt.platform.os === "osx" ? "PingFang SC" : "Microsoft YaHei UI" + color: title_text_color + Behavior on color { + ColorAnimation { + duration: 60 + easing.type: Easing.OutSine + } + } + } + + RowLayout{ + id: left_container + spacing: 1 + anchors{ + top: parent.top + left: parent.left + bottom: parent.bottom + leftMargin: Qt.platform.os === "osx" ? 65 : 10 + } + Layout.maximumWidth: (parent.width - title_text.contentWidth) / 2 + } + + RowLayout{ + id: right_container + spacing: 1 + anchors{ + top: parent.top + right: parent.right + bottom: parent.bottom + rightMargin: 10 + } + Layout.maximumWidth: (parent.width - title_text.contentWidth) / 2 + layoutDirection: Qt.RightToLeft + RowLayout{ + visible: Qt.platform.os !== "osx" + layoutDirection: Qt.RightToLeft + spacing: 0 + Layout.rightMargin: Qt.platform.os === "osx" ? -5 : 0 + RibbonButton{ + show_bg:false + icon_source: RibbonIcons.Dismiss + icon_source_filled: RibbonIcons_Filled.Dismiss + text_color: titleBar.title_text_color + hover_color: "#ED6B5E" + pressed_color: "#B55149" + text_color_reverse: false + tip_text: qsTr("Close") + onClicked: Window.window.close() + } + + RibbonButton{ + show_bg:false + icon_source: RibbonIcons.Subtract + icon_source_filled: RibbonIcons_Filled.Subtract + text_color: titleBar.title_text_color + hover_color: "#F4BE4F" + pressed_color: "#B78F3B" + text_color_reverse: false + tip_text: qsTr("Minimize") + font.bold: pressed || checked + onClicked: Window.window.visibility = Window.Minimized + } + + RibbonButton{ + show_bg:false + icon_source: Window.window.visibility === Window.Maximized ? RibbonIcons.ArrowMinimize : RibbonIcons.ArrowMaximize + text_color: titleBar.title_text_color + hover_color: "#61C554" + pressed_color: "#48953F" + text_color_reverse: false + tip_text: Window.window.visibility === Window.Maximized ? qsTr("Restore") : qsTr("Maximize") + onClicked: { + if (Window.window.visibility === Window.Maximized) + Window.window.visibility = Window.Windowed + else + Window.window.visibility = Window.Maximized + } + } + } + RibbonSwitchButton{ + text: qsTr("Style") + grabber_text: checked ? qsTr("Modern") : qsTr("Classic") + text_color: titleBar.title_text_color + grabber_color: "#F9F9F9" + grabber_checked_color: "#BEC1C9" + grabber_unchecked_color: "#334668" + grabber_text_unchecked_color: "white" + grabber_text_checked_color: "black" + onClicked: RibbonTheme.modern_style = checked + visible: show_style_switch + } + RibbonButton{ + show_bg:false + icon_source: RibbonIcons.DarkTheme + icon_source_filled: RibbonIcons_Filled.DarkTheme + checkable: true + tip_text: qsTr("Dark Mode") + hover_color: Qt.rgba(0,0,0, 0.3) + pressed_color: Qt.rgba(0,0,0, 0.4) + text_color: title_text_color + text_color_reverse: false + onClicked: { + RibbonTheme.theme_mode = checked ? RibbonThemeType.Dark : RibbonThemeType.Light + } + checked: RibbonTheme.dark_mode + visible: show_darkmode_btn + } + } +} diff --git a/lib_source/qml/RibbonToolTip.qml b/lib_source/qml/RibbonToolTip.qml new file mode 100644 index 0000000..f61fece --- /dev/null +++ b/lib_source/qml/RibbonToolTip.qml @@ -0,0 +1,25 @@ +import QtQuick +import QtQuick.Controls +import Qt5Compat.GraphicalEffects +import RibbonUI + +ToolTip { + id: control + delay: 1000 + font.pixelSize: 10 + font.family: Qt.platform.os === "osx" ? "PingFang SC" : "Microsoft YaHei UI" + contentItem: Text { + text: control.text + font: control.font + color: RibbonTheme.dark_mode ? "white" : "black" + } + + background: Rectangle { + radius: 3 + color: RibbonTheme.dark_mode ? "#2C2C29" : "#E0E0E2" + layer.enabled: true + layer.effect: RibbonShadow{} + border.color: dark_mode ? "#5C5D5D" : "#B5B4B5" + border.width: 1 + } +} diff --git a/lib_source/qml/RibbonView.qml b/lib_source/qml/RibbonView.qml new file mode 100644 index 0000000..2bb07bc --- /dev/null +++ b/lib_source/qml/RibbonView.qml @@ -0,0 +1,86 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt5Compat.GraphicalEffects +import RibbonUI + +Item { + id: root + default property alias content: container.data + property bool modern_style: RibbonTheme.modern_style + property bool dark_mode: RibbonTheme.dark_mode + property int spacing: 5 + property int top_padding: 0 + property int bottom_padding: 0 + z:-2 + clip: true + anchors{ + left: parent.left + right:parent.right + } + + Rectangle{ + id:bg + anchors.fill: parent + color: dark_mode ? "#282828" : "#ECECEC" + visible: !modern_style + } + + RibbonBlur{ + id: top_mask + anchors{ + left: parent.left + right: parent.right + top: parent.top + } + height: Math.abs(top_padding) + target: flickview + mask_opacity: 0 + visible: flickview.contentY > container_bg.anchors.topMargin + clip: true + target_rect: Qt.rect(x,y-top_padding,width,height) + } + + Item{ + id: clipper + anchors.horizontalCenter: parent.horizontalCenter + anchors.top:top_mask.bottom + implicitHeight: parent.height - Math.abs(top_padding) - Math.abs(bottom_padding) + implicitWidth: parent.width + clip: true + Flickable{ + id:flickview + anchors.fill: parent + contentWidth: parent.width + contentHeight: container.height + ScrollBar.vertical: ScrollBar { + anchors.right: flickview.right + anchors.rightMargin: 2 + } + boundsBehavior: Flickable.StopAtBounds + ColumnLayout{ + id:container + anchors{ + top: parent.top + horizontalCenter: parent.horizontalCenter + } + width: parent.width + } + } + } + + RibbonBlur{ + id: bottom_mask + anchors{ + left: parent.left + right: parent.right + bottom: parent.bottom + } + height: Math.abs(bottom_padding) + target: flickview + mask_opacity: 0 + visible: bottom_padding + clip: true + target_rect: Qt.rect(x,y-top_padding,width,height) + } +} diff --git a/lib_source/qmldir b/lib_source/qmldir new file mode 100644 index 0000000..b078180 --- /dev/null +++ b/lib_source/qmldir @@ -0,0 +1,36 @@ +module RibbonUI +linktarget RibbonUI +optional plugin RibbonUI +classname RibbonUIPlugin +typeinfo RibbonUI.qmltypes +prefer :/RibbonUI/ +RibbonTabBar 1.0 qml/RibbonTabBar.qml +RibbonTabButton 1.0 qml/RibbonTabButton.qml +RibbonView 1.0 qml/RibbonView.qml +RibbonTabPage 1.0 qml/RibbonTabPage.qml +RibbonTabGroup 1.0 qml/RibbonTabGroup.qml +RibbonButton 1.0 qml/RibbonButton.qml +RibbonBottomBar 1.0 qml/RibbonBottomBar.qml +RibbonIcon 1.0 qml/RibbonIcon.qml +RibbonToolTip 1.0 qml/RibbonToolTip.qml +RibbonTitleBar 1.0 qml/RibbonTitleBar.qml +RibbonSlider 1.0 qml/RibbonSlider.qml +RibbonSwitchButton 1.0 qml/RibbonSwitchButton.qml +RibbonCheckBox 1.0 qml/RibbonCheckBox.qml +RibbonMenu 1.0 qml/RibbonMenu.qml +RibbonMenuItem 1.0 qml/RibbonMenuItem.qml +RibbonShadow 1.0 qml/RibbonShadow.qml +RibbonBlur 1.0 qml/RibbonBlur.qml +RibbonMenuSeparator 1.0 qml/RibbonMenuSeparator.qml +RibbonPaperView 1.0 qml/RibbonPaperView.qml +RibbonPushButton 1.0 qml/RibbonPushButton.qml +RibbonRectangle 1.0 qml/RibbonRectangle.qml +RibbonText 1.0 qml/RibbonText.qml +RibbonTextBoxMenu 1.0 qml/RibbonTextBoxMenu.qml +RibbonPopup 1.0 qml/RibbonPopup.qml +RibbonPopupDialog 1.0 qml/RibbonPopupDialog.qml +RibbonLineEdit 1.0 qml/RibbonLineEdit.qml +RibbonTextEdit 1.0 qml/RibbonTextEdit.qml +RibbonComboBox 1.0 qml/RibbonComboBox.qml +RibbonSpinBox 1.0 qml/RibbonSpinBox.qml + diff --git a/lib_source/resources/FluentSystemIcons-Resizable.ttf b/lib_source/resources/FluentSystemIcons-Resizable.ttf new file mode 100644 index 0000000..bbd6930 Binary files /dev/null and b/lib_source/resources/FluentSystemIcons-Resizable.ttf differ diff --git a/lib_source/resources/imgs/icon.png b/lib_source/resources/imgs/icon.png new file mode 100644 index 0000000..d1ab301 Binary files /dev/null and b/lib_source/resources/imgs/icon.png differ diff --git a/lib_source/ribbontheme.cpp b/lib_source/ribbontheme.cpp new file mode 100644 index 0000000..d39cc42 --- /dev/null +++ b/lib_source/ribbontheme.cpp @@ -0,0 +1,66 @@ +#include "ribbontheme.h" + +#if (QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)) +#include +#elif ((QT_VERSION >= QT_VERSION_CHECK(6, 2, 1))) +#include +#include +#else +#include +#endif + +#include + +RibbonTheme::RibbonTheme() +{ + connect(this, &RibbonTheme::theme_modeChanged, this, [=](){ + emit dark_modeChanged(); + }); + _theme_mode = RibbonThemeType::ThemeMode::System; + _system_theme_mode = current_theme(); + modern_style(false); + qApp->installEventFilter(this); +} + +RibbonTheme* RibbonTheme::instance(){ + static RibbonTheme instance; + return &instance; +} + +bool RibbonTheme::eventFilter(QObject *obj, QEvent *event) +{ + Q_UNUSED(obj); + if (event->type() == QEvent::ApplicationPaletteChange || event->type() == QEvent::ThemeChange) + { + _system_theme_mode = current_theme(); + if (_theme_mode == RibbonThemeType::ThemeMode::System) + Q_EMIT theme_modeChanged(); + event->accept(); + return true; + } + return false; +} + +RibbonThemeType::ThemeMode RibbonTheme::current_theme() +{ +#if (QT_VERSION >= QT_VERSION_CHECK(6, 5, 0)) + return (QGuiApplication::styleHints()->colorScheme() == Qt::ColorScheme::Light) ? + RibbonThemeType::ThemeMode::Light : RibbonThemeType::ThemeMode::Dark; +#elif ((QT_VERSION >= QT_VERSION_CHECK(6, 2, 1))) + if (const QPlatformTheme * const theme = QGuiApplicationPrivate::platformTheme()) { + return (theme->appearance() == QPlatformTheme::Appearance::Light) ? + RibbonThemeType::ThemeMode::Light : RibbonThemeType::ThemeMode::Dark; + } + return RibbonThemeType::ThemeMode::Light; +#else + QPalette palette = qApp->palette(); + QColor color = palette.color(QPalette::Window).rgb(); + return (color.red() * 0.2126 + color.green() * 0.7152 + color.blue() * 0.0722 > 255 / 2) ? RibbonThemeType::ThemeMode::Light : RibbonThemeType::ThemeMode::Dark; +#endif +} + +bool RibbonTheme::dark_mode() +{ + return _theme_mode == RibbonThemeType::ThemeMode::System ? _system_theme_mode == RibbonThemeType::ThemeMode::Dark + : _theme_mode == RibbonThemeType::ThemeMode::Dark; +} diff --git a/lib_source/ribbontheme.h b/lib_source/ribbontheme.h new file mode 100644 index 0000000..eef3b48 --- /dev/null +++ b/lib_source/ribbontheme.h @@ -0,0 +1,28 @@ +#ifndef RIBBONTHEME_H +#define RIBBONTHEME_H + +#include +#include "definitions.h" + +class RibbonTheme : public QQuickItem +{ + Q_OBJECT + QML_ELEMENT + QML_SINGLETON + QML_NAMED_ELEMENT(RibbonTheme) + + Q_PROPERTY(bool dark_mode READ dark_mode() NOTIFY dark_modeChanged FINAL) + Q_PROPERTY_RW(RibbonThemeType::ThemeMode,theme_mode) + Q_PROPERTY_RW(bool,modern_style) +public: + RibbonTheme(); + static RibbonTheme* instance(); + Q_SIGNAL void dark_modeChanged(); + bool dark_mode(); +private: + bool eventFilter(QObject *obj, QEvent *event); + RibbonThemeType::ThemeMode current_theme(); + RibbonThemeType::ThemeMode _system_theme_mode; +}; + +#endif // RIBBONTHEME_H diff --git a/lib_source/ribbonui.cpp b/lib_source/ribbonui.cpp new file mode 100644 index 0000000..edd5617 --- /dev/null +++ b/lib_source/ribbonui.cpp @@ -0,0 +1,16 @@ +#include "ribbonui.h" + +#define STR(x) #x +#define JOIN(a,b,c,d) STR(a.b.c.d) +#define VER_JOIN(x) JOIN x + +RibbonUI::RibbonUI(QQuickItem *parent) + : QQuickItem(parent) +{ + version(VER_JOIN((RIBBONUI_VERSION))); +} + +RibbonUI* RibbonUI::instance(){ + static RibbonUI instance; + return &instance; +} diff --git a/lib_source/ribbonui.h b/lib_source/ribbonui.h new file mode 100644 index 0000000..dbc0d5b --- /dev/null +++ b/lib_source/ribbonui.h @@ -0,0 +1,19 @@ +#ifndef RIBBONUI_H +#define RIBBONUI_H + +#include +#include "definitions.h" + +class RibbonUI : public QQuickItem +{ + Q_OBJECT + QML_ELEMENT + QML_SINGLETON + QML_NAMED_ELEMENT(RibbonUI) + Q_PROPERTY_RW(QString, version) +public: + explicit RibbonUI(QQuickItem *parent = nullptr); + static RibbonUI* instance(); +}; + +#endif // RIBBONUI_H diff --git a/scripts/windows-mingw-publish.ps1 b/scripts/windows-mingw-publish.ps1 new file mode 100644 index 0000000..b30fc9a --- /dev/null +++ b/scripts/windows-mingw-publish.ps1 @@ -0,0 +1,34 @@ +[CmdletBinding()] +param ( + [string] $archiveName, [string] $targetName +) +# 外部环境变量包括: +# archiveName: ${{ matrix.qt_ver }}-${{ matrix.qt_arch }} + + +# archiveName: 5.15.2-win64_mingw81 + +$scriptDir = $PSScriptRoot +$currentDir = Get-Location +Write-Host "currentDir" $currentDir +Write-Host "scriptDir" $scriptDir + +function Main() { + + New-Item -ItemType Directory $archiveName + # 拷贝exe + Copy-Item D:\a\RibbonUI\RibbonUI\build\example\* $archiveName\ -Force -Recurse | Out-Null + # 拷贝依赖 + windeployqt --qmldir . --plugindir $archiveName\plugins --no-translations --compiler-runtime $archiveName\$targetName + # 删除不必要的文件 + $excludeList = @("*.qmlc", "*.ilk", "*.exp", "*.lib", "*.pdb") + Remove-Item -Path $archiveName -Include $excludeList -Recurse -Force + # 打包zip + Compress-Archive -Path $archiveName $archiveName'.zip' +} + +if ($null -eq $archiveName || $null -eq $targetName) { + Write-Host "args missing, archiveName is" $archiveName ", targetName is" $targetName + return +} +Main diff --git a/scripts/windows-publish.ps1 b/scripts/windows-publish.ps1 new file mode 100644 index 0000000..d0d2ac2 --- /dev/null +++ b/scripts/windows-publish.ps1 @@ -0,0 +1,51 @@ +[CmdletBinding()] +param ( + [string] $archiveName, [string] $targetName +) +# 外部环境变量包括: +# archiveName: ${{ matrix.qt_ver }}-${{ matrix.qt_arch }} +# winSdkDir: ${{ steps.build.outputs.winSdkDir }} +# winSdkVer: ${{ steps.build.outputs.winSdkVer }} +# vcToolsInstallDir: ${{ steps.build.outputs.vcToolsInstallDir }} +# vcToolsRedistDir: ${{ steps.build.outputs.vcToolsRedistDir }} +# msvcArch: ${{ matrix.msvc_arch }} + + +# winSdkDir: C:\Program Files (x86)\Windows Kits\10\ +# winSdkVer: 10.0.19041.0\ +# vcToolsInstallDir: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\ +# vcToolsRedistDir: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Redist\MSVC\14.28.29325\ +# archiveName: 5.9.9-win32_msvc2015 +# msvcArch: x86 + +$scriptDir = $PSScriptRoot +$currentDir = Get-Location +Write-Host "currentDir" $currentDir +Write-Host "scriptDir" $scriptDir + +function Main() { + + New-Item -ItemType Directory $archiveName + # 拷贝exe + Copy-Item D:\a\RibbonUI\RibbonUI\build\example\* $archiveName\ -Force -Recurse | Out-Null + # 拷贝依赖 + windeployqt --qmldir . --plugindir $archiveName\plugins --no-translations --compiler-runtime $archiveName\$targetName + # 删除不必要的文件 + $excludeList = @("*.qmlc", "*.ilk", "*.exp", "*.lib", "*.pdb") + Remove-Item -Path $archiveName -Include $excludeList -Recurse -Force + # 拷贝vcRedist dll + $redistDll="{0}{1}\*.CRT\*.dll" -f $env:vcToolsRedistDir.Trim(),$env:msvcArch + Copy-Item $redistDll $archiveName\ + # 拷贝WinSDK dll + $sdkDll="{0}Redist\{1}ucrt\DLLs\{2}\*.dll" -f $env:winSdkDir.Trim(),$env:winSdkVer.Trim(),$env:msvcArch + Copy-Item $sdkDll $archiveName\ + # 打包zip + Compress-Archive -Path $archiveName $archiveName'.zip' +} + +if ($null -eq $archiveName || $null -eq $targetName) { + Write-Host "args missing, archiveName is" $archiveName ", targetName is" $targetName + return +} +Main +