Merge branch 'main' into HY3
22
.github/workflows/build_all.yml
vendored
|
|
@ -24,6 +24,9 @@ on:
|
|||
- '**/CMakeLists.txt'
|
||||
- 'version.inc'
|
||||
- ".github/workflows/build_*.yml"
|
||||
- 'BuildLinux.sh'
|
||||
- 'build_release_vs2022.bat'
|
||||
- 'build_release_macos.sh'
|
||||
|
||||
workflow_dispatch: # allows for manual dispatch
|
||||
inputs:
|
||||
|
|
@ -55,4 +58,21 @@ jobs:
|
|||
os: ${{ matrix.os }}
|
||||
arch: ${{ matrix.arch }}
|
||||
build-deps-only: ${{ inputs.build-deps-only || false }}
|
||||
secrets: inherit
|
||||
secrets: inherit
|
||||
# flatpak:
|
||||
# name: "Flatpak"
|
||||
# runs-on: ubuntu-latest
|
||||
# container:
|
||||
# image: bilelmoussaoui/flatpak-github-actions:gnome-45
|
||||
# options: --privileged
|
||||
# steps:
|
||||
# # maybe i'm too dumb and fucked up to do CI. OH WELL :D -ppd
|
||||
# - name: "Remove unneeded stuff to free disk space"
|
||||
# run:
|
||||
# sudo rm -rf /usr/share/dotnet /opt/ghc "/usr/local/share/boost" "$AGENT_TOOLSDIRECTORY"
|
||||
# - uses: actions/checkout@v4
|
||||
# - uses: flatpak/flatpak-github-actions/flatpak-builder@v6
|
||||
# with:
|
||||
# bundle: orcaslicer.flatpak
|
||||
# manifest-path: flatpak/io.github.softfever.OrcaSlicer.yml
|
||||
# cache-key: flatpak-builder-${{ github.sha }}
|
||||
|
|
|
|||
17
.github/workflows/build_deps.yml
vendored
|
|
@ -28,13 +28,13 @@ jobs:
|
|||
env:
|
||||
date:
|
||||
steps:
|
||||
|
||||
|
||||
# Setup the environment
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
lfs: 'true'
|
||||
|
||||
|
||||
- name: load cached deps
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
|
|
@ -49,13 +49,13 @@ jobs:
|
|||
if: inputs.os != 'windows-latest'
|
||||
run: echo "date=$(date +'%Y%m%d')" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
|
||||
- name: Get the date on Windows
|
||||
if: inputs.os == 'windows-latest'
|
||||
run: echo "date=$(Get-Date -Format 'yyyyMMdd')" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
|
||||
shell: pwsh
|
||||
|
||||
|
||||
|
||||
# Build Dependencies
|
||||
- name: Build on Windows
|
||||
if: inputs.os == 'windows-latest'
|
||||
|
|
@ -98,8 +98,8 @@ jobs:
|
|||
./BuildLinux.sh -dr
|
||||
cd deps/build
|
||||
tar -czvf OrcaSlicer_dep_ubuntu_$(date +"%Y%m%d").tar.gz destdir
|
||||
|
||||
|
||||
|
||||
|
||||
# Upload Artifacts
|
||||
- name: Upload Mac ${{ inputs.arch }} artifacts
|
||||
if: inputs.os == 'macos-12'
|
||||
|
|
@ -116,12 +116,12 @@ jobs:
|
|||
path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep*.zip
|
||||
|
||||
- name: Upload Ubuntu artifacts
|
||||
if: inputs.os == 'ubuntu-20.04'
|
||||
if: ${{ ! env.ACT && inputs.os == 'ubuntu-20.04' }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: OrcaSlicer_dep_ubuntu_${{ env.date }}
|
||||
path: ${{ github.workspace }}/deps/build/OrcaSlicer_dep_ubuntu_*.tar.gz
|
||||
|
||||
|
||||
build_orca:
|
||||
name: Build OrcaSlicer
|
||||
needs: [build_deps]
|
||||
|
|
@ -133,4 +133,3 @@ jobs:
|
|||
os: ${{ inputs.os }}
|
||||
arch: ${{ inputs.arch }}
|
||||
secrets: inherit
|
||||
|
||||
|
|
|
|||
44
.github/workflows/build_orca.yml
vendored
|
|
@ -57,7 +57,7 @@ jobs:
|
|||
$ref = "${{ github.ref }}"
|
||||
$eventName = "${{ github.event_name }}"
|
||||
$prNumber = "${{ github.event.number }}"
|
||||
|
||||
|
||||
if ($eventName -eq 'pull_request') {
|
||||
$ver = "PR" + $prNumber
|
||||
} else {
|
||||
|
|
@ -67,12 +67,12 @@ jobs:
|
|||
}
|
||||
$ver = "V$ver"
|
||||
}
|
||||
|
||||
|
||||
echo "ver=$ver" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
|
||||
echo "date=$date" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
|
||||
echo "date: ${{ env.date }} version: ${{ env.ver }}"
|
||||
shell: pwsh
|
||||
|
||||
|
||||
# Mac
|
||||
- name: Install tools mac
|
||||
if: inputs.os == 'macos-12'
|
||||
|
|
@ -134,11 +134,11 @@ jobs:
|
|||
if: github.ref == 'refs/heads/main' && inputs.os == 'macos-12'
|
||||
uses: WebFreak001/deploy-nightly@v3.1.0
|
||||
with:
|
||||
upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label}
|
||||
release_id: 137995723
|
||||
upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label}
|
||||
release_id: 137995723
|
||||
asset_path: ${{ github.workspace }}/OrcaSlicer_Mac_${{inputs.arch}}_${{ env.ver }}.dmg
|
||||
asset_name: OrcaSlicer_Mac_${{inputs.arch}}_${{ env.ver }}.dmg
|
||||
asset_content_type: application/octet-stream
|
||||
asset_content_type: application/octet-stream
|
||||
max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
|
||||
|
||||
# Windows
|
||||
|
|
@ -174,7 +174,7 @@ jobs:
|
|||
working-directory: ${{ github.workspace }}/build/src/Release
|
||||
shell: cmd
|
||||
run: '"C:/Program Files/7-Zip/7z.exe" a -m0=lzma2 -mx9 Debug_PDB_${{ env.ver }}_for_developers_only.7z *.pdb'
|
||||
|
||||
|
||||
- name: Upload artifacts Win zip
|
||||
if: inputs.os == 'windows-latest'
|
||||
uses: actions/upload-artifact@v4
|
||||
|
|
@ -200,23 +200,23 @@ jobs:
|
|||
if: github.ref == 'refs/heads/main' && inputs.os == 'windows-latest'
|
||||
uses: WebFreak001/deploy-nightly@v3.1.0
|
||||
with:
|
||||
upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label}
|
||||
release_id: 137995723
|
||||
upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label}
|
||||
release_id: 137995723
|
||||
asset_path: ${{ github.workspace }}/build/OrcaSlicer_Windows_${{ env.ver }}_portable.zip
|
||||
asset_name: OrcaSlicer_Windows_${{ env.ver }}_portable.zip
|
||||
asset_content_type: application/x-zip-compressed
|
||||
max_releases: 1
|
||||
asset_content_type: application/x-zip-compressed
|
||||
max_releases: 1
|
||||
|
||||
- name: Deploy Windows release installer
|
||||
if: github.ref == 'refs/heads/main' && inputs.os == 'windows-latest'
|
||||
uses: WebFreak001/deploy-nightly@v3.1.0
|
||||
with:
|
||||
upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label}
|
||||
release_id: 137995723
|
||||
upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label}
|
||||
release_id: 137995723
|
||||
asset_path: ${{ github.workspace }}/build/OrcaSlicer_Windows_Installer_${{ env.ver }}.exe
|
||||
asset_name: OrcaSlicer_Windows_Installer_${{ env.ver }}.exe
|
||||
asset_content_type: application/x-msdownload
|
||||
max_releases: 1
|
||||
max_releases: 1
|
||||
|
||||
# Ubuntu
|
||||
- name: Install dependencies
|
||||
|
|
@ -257,30 +257,30 @@ jobs:
|
|||
zip -r orca_custom_preset_tests.zip user/
|
||||
|
||||
- name: Upload artifacts Ubuntu
|
||||
if: inputs.os == 'ubuntu-20.04'
|
||||
if: ${{ ! env.ACT && inputs.os == 'ubuntu-20.04' }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: OrcaSlicer_Linux_${{ env.ver }}
|
||||
path: './build/OrcaSlicer_Linux_${{ env.ver }}.AppImage'
|
||||
|
||||
- name: Deploy Ubuntu release
|
||||
if: github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-20.04'
|
||||
if: ${{ ! env.ACT && github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-20.04' }}
|
||||
uses: WebFreak001/deploy-nightly@v3.1.0
|
||||
with:
|
||||
upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label}
|
||||
release_id: 137995723
|
||||
upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label}
|
||||
release_id: 137995723
|
||||
asset_path: ./build/OrcaSlicer_Linux_${{ env.ver }}.AppImage
|
||||
asset_name: OrcaSlicer_Linux_${{ env.ver }}.AppImage
|
||||
asset_content_type: application/octet-stream
|
||||
max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
|
||||
|
||||
- name: Deploy orca_custom_preset_tests
|
||||
if: github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-20.04'
|
||||
if: ${{ ! env.ACT && github.ref == 'refs/heads/main' && inputs.os == 'ubuntu-20.04' }}
|
||||
uses: WebFreak001/deploy-nightly@v3.1.0
|
||||
with:
|
||||
upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label}
|
||||
release_id: 137995723
|
||||
upload_url: https://uploads.github.com/repos/SoftFever/OrcaSlicer/releases/137995723/assets{?name,label}
|
||||
release_id: 137995723
|
||||
asset_path: ${{ github.workspace }}/resources/profiles/orca_custom_preset_tests.zip
|
||||
asset_name: orca_custom_preset_tests.zip
|
||||
asset_content_type: application/octet-stream
|
||||
max_releases: 1
|
||||
max_releases: 1
|
||||
|
|
|
|||
1
.github/workflows/publish_docs_to_wiki.yml
vendored
|
|
@ -16,6 +16,7 @@ env:
|
|||
|
||||
jobs:
|
||||
publish_docs_to_wiki:
|
||||
if: ${{ !env.ACT }} # Skip if using `act`
|
||||
name: Publish docs to Wiki
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
|
|
|||
3
.gitignore
vendored
|
|
@ -32,4 +32,5 @@ src/OrcaSlicer-doc/
|
|||
**/filament_full/
|
||||
/deps/DL_CACHE/
|
||||
/deps/DL_CACHE
|
||||
resources/profiles/user/default
|
||||
**/.flatpak-builder/
|
||||
resources/profiles/user/default
|
||||
|
|
|
|||
246
BuildLinux.sh
|
|
@ -1,15 +1,11 @@
|
|||
#!/bin/bash
|
||||
|
||||
export ROOT=`pwd`
|
||||
export NCORES=`nproc --all`
|
||||
export CMAKE_BUILD_PARALLEL_LEVEL=${NCORES}
|
||||
FOUND_GTK2=$(dpkg -l libgtk* | grep gtk2)
|
||||
FOUND_GTK3=$(dpkg -l libgtk* | grep gtk-3)
|
||||
export ROOT=$(dirname $(readlink -f ${0}))
|
||||
|
||||
set -e # exit on first error
|
||||
|
||||
function check_available_memory_and_disk() {
|
||||
FREE_MEM_GB=$(free -g -t | grep 'Mem:' | rev | cut -d" " -f1 | rev)
|
||||
FREE_MEM_GB=$(free -g -t | grep 'Mem' | rev | cut -d" " -f1 | rev)
|
||||
MIN_MEM_GB=10
|
||||
|
||||
FREE_DISK_KB=$(df -k . | tail -1 | awk '{print $4}')
|
||||
|
|
@ -21,238 +17,172 @@ function check_available_memory_and_disk() {
|
|||
exit 2
|
||||
fi
|
||||
|
||||
if [[ ${FREE_DISK_KB} -le ${MIN_DISK_KB} ]]; then
|
||||
echo -e "\nERROR: Orca Slicer Builder requires at least $(echo $MIN_DISK_KB |awk '{ printf "%.1fG\n", $1/1024/1024; }') (systen has only $(echo ${FREE_DISK_KB} | awk '{ printf "%.1fG\n", $1/1024/1024; }') disk free)"
|
||||
if [[ ${FREE_DISK_KB} -le ${MIN_DISK_KB} ]]; then
|
||||
echo -e "\nERROR: Orca Slicer Builder requires at least $(echo ${MIN_DISK_KB} |awk '{ printf "%.1fG\n", $1/1024/1024; }') (systen has only $(echo ${FREE_DISK_KB} | awk '{ printf "%.1fG\n", $1/1024/1024; }') disk free)"
|
||||
echo && df -h . && echo
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function usage() {
|
||||
echo "Usage: ./BuildLinux.sh [-i][-u][-d][-s][-b][-g]"
|
||||
echo " -i: Generate appimage (optional)"
|
||||
echo " -g: force gtk2 build"
|
||||
echo "Usage: ./BuildLinux.sh [-1][-b][-c][-d][-i][-r][-s][-u]"
|
||||
echo " -1: limit builds to 1 core (where possible)"
|
||||
echo " -b: build in debug mode"
|
||||
echo " -c: force a clean build"
|
||||
echo " -d: build deps (optional)"
|
||||
echo " -h: this help output"
|
||||
echo " -i: Generate appimage (optional)"
|
||||
echo " -r: skip ram and disk checks (low ram compiling)"
|
||||
echo " -s: build orca-slicer (optional)"
|
||||
echo " -u: only update clock & dependency packets (optional and need sudo)"
|
||||
echo " -r: skip free ram check (low ram compiling)"
|
||||
echo " -u: update and build dependencies (optional and need sudo)"
|
||||
echo "For a first use, you want to 'sudo ./BuildLinux.sh -u'"
|
||||
echo " and then './BuildLinux.sh -dsi'"
|
||||
}
|
||||
|
||||
unset name
|
||||
while getopts ":dsiuhgbr" opt; do
|
||||
while getopts ":1bcdghirsu" opt; do
|
||||
case ${opt} in
|
||||
u )
|
||||
UPDATE_LIB="1"
|
||||
;;
|
||||
i )
|
||||
BUILD_IMAGE="1"
|
||||
;;
|
||||
d )
|
||||
BUILD_DEPS="1"
|
||||
;;
|
||||
s )
|
||||
BUILD_ORCA="1"
|
||||
1 )
|
||||
export CMAKE_BUILD_PARALLEL_LEVEL=1
|
||||
;;
|
||||
b )
|
||||
BUILD_DEBUG="1"
|
||||
;;
|
||||
g )
|
||||
FOUND_GTK3=""
|
||||
c )
|
||||
CLEAN_BUILD=1
|
||||
;;
|
||||
d )
|
||||
BUILD_DEPS="1"
|
||||
;;
|
||||
r )
|
||||
SKIP_RAM_CHECK="1"
|
||||
;;
|
||||
h ) usage
|
||||
exit 0
|
||||
;;
|
||||
i )
|
||||
BUILD_IMAGE="1"
|
||||
;;
|
||||
r )
|
||||
SKIP_RAM_CHECK="1"
|
||||
;;
|
||||
s )
|
||||
BUILD_ORCA="1"
|
||||
;;
|
||||
u )
|
||||
UPDATE_LIB="1"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ $OPTIND -eq 1 ]
|
||||
if [ ${OPTIND} -eq 1 ]
|
||||
then
|
||||
usage
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Addtional Dev packages for OrcaSlicer
|
||||
export REQUIRED_DEV_PACKAGES="libmspack-dev libgstreamerd-3-dev libsecret-1-dev libwebkit2gtk-4.0-dev libosmesa6-dev libssl-dev libcurl4-openssl-dev eglexternalplatform-dev libudev-dev libdbus-1-dev extra-cmake-modules texinfo"
|
||||
# libwebkit2gtk-4.1-dev ??
|
||||
export DEV_PACKAGES_COUNT=$(echo ${REQUIRED_DEV_PACKAGES} | wc -w)
|
||||
if [ $(dpkg --get-selections | grep -E "$(echo ${REQUIRED_DEV_PACKAGES} | tr ' ' '|')" | wc -l) -lt ${DEV_PACKAGES_COUNT} ]; then
|
||||
sudo apt install -y ${REQUIRED_DEV_PACKAGES} git cmake wget file gettext
|
||||
fi
|
||||
|
||||
#FIXME: require root for -u option
|
||||
if [[ -n "$UPDATE_LIB" ]]
|
||||
DISTRIBUTION=$(awk -F= '/^ID=/ {print $2}' /etc/os-release)
|
||||
# treat ubuntu as debian
|
||||
if [ "${DISTRIBUTION}" == "ubuntu" ]
|
||||
then
|
||||
echo -n -e "Updating linux ...\n"
|
||||
# hwclock -s # DeftDawg: Why does SuperSlicer want to do this?
|
||||
apt update
|
||||
if [[ -z "$FOUND_GTK3" ]]
|
||||
then
|
||||
echo -e "\nInstalling: libgtk2.0-dev libglew-dev libudev-dev libdbus-1-dev cmake git\n"
|
||||
apt install -y libgtk2.0-dev libglew-dev libudev-dev libdbus-1-dev cmake git
|
||||
else
|
||||
echo -e "\nFind libgtk-3, installing: libgtk-3-dev libglew-dev libudev-dev libdbus-1-dev cmake git\n"
|
||||
apt install -y libgtk-3-dev libglew-dev libudev-dev libdbus-1-dev cmake git
|
||||
fi
|
||||
# for ubuntu 22+ and 23+:
|
||||
ubu_major_version="$(grep VERSION_ID /etc/os-release | cut -d "=" -f 2 | cut -d "." -f 1 | tr -d /\"/)"
|
||||
if [ $ubu_major_version == "22" ] || [ $ubu_major_version == "23" ]
|
||||
then
|
||||
apt install -y curl libfuse-dev libssl-dev libcurl4-openssl-dev m4
|
||||
fi
|
||||
if [[ -n "$BUILD_DEBUG" ]]
|
||||
then
|
||||
echo -e "\nInstalling: libssl-dev libcurl4-openssl-dev\n"
|
||||
apt install -y libssl-dev libcurl4-openssl-dev
|
||||
fi
|
||||
echo -e "done\n"
|
||||
exit 0
|
||||
DISTRIBUTION="debian"
|
||||
fi
|
||||
|
||||
FOUND_GTK2_DEV=$(dpkg -l libgtk* | grep gtk2.0-dev || echo '')
|
||||
FOUND_GTK3_DEV=$(dpkg -l libgtk* | grep gtk-3-dev || echo '')
|
||||
echo "FOUND_GTK2=$FOUND_GTK2)"
|
||||
if [[ -z "$FOUND_GTK2_DEV" ]]
|
||||
if [ ! -f ./linux.d/${DISTRIBUTION} ]
|
||||
then
|
||||
if [[ -z "$FOUND_GTK3_DEV" ]]
|
||||
echo "Your distribution does not appear to be currently supported by these build scripts"
|
||||
exit 1
|
||||
fi
|
||||
source ./linux.d/${DISTRIBUTION}
|
||||
|
||||
echo "FOUND_GTK3=${FOUND_GTK3}"
|
||||
if [[ -z "${FOUND_GTK3_DEV}" ]]
|
||||
then
|
||||
echo "Error, you must install the dependencies before."
|
||||
echo "Use option -u with sudo"
|
||||
exit 0
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "[1/9] Updating submodules..."
|
||||
{
|
||||
# update submodule profiles
|
||||
pushd resources/profiles
|
||||
git submodule update --init
|
||||
popd
|
||||
}
|
||||
|
||||
echo "[2/9] Changing date in version..."
|
||||
echo "Changing date in version..."
|
||||
{
|
||||
# change date in version
|
||||
sed -i "s/+UNKNOWN/_$(date '+%F')/" version.inc
|
||||
}
|
||||
echo "done"
|
||||
|
||||
# mkdir in deps
|
||||
if [ ! -d "deps/build" ]
|
||||
|
||||
if ! [[ -n "${SKIP_RAM_CHECK}" ]]
|
||||
then
|
||||
mkdir deps/build
|
||||
check_available_memory_and_disk
|
||||
fi
|
||||
|
||||
if ! [[ -n "$SKIP_RAM_CHECK" ]]
|
||||
if [[ -n "${BUILD_DEPS}" ]]
|
||||
then
|
||||
check_available_memory_and_disk
|
||||
fi
|
||||
|
||||
if [[ -n "$BUILD_DEPS" ]]
|
||||
then
|
||||
echo "[3/9] Configuring dependencies..."
|
||||
BUILD_ARGS=""
|
||||
if [[ -n "$FOUND_GTK3_DEV" ]]
|
||||
echo "Configuring dependencies..."
|
||||
BUILD_ARGS="-DDEP_WX_GTK3=ON"
|
||||
if [[ -n "${CLEAN_BUILD}" ]]
|
||||
then
|
||||
BUILD_ARGS="-DDEP_WX_GTK3=ON"
|
||||
rm -fr deps/build
|
||||
fi
|
||||
if [[ -n "$BUILD_DEBUG" ]]
|
||||
if [ ! -d "deps/build" ]
|
||||
then
|
||||
mkdir deps/build
|
||||
fi
|
||||
if [[ -n "${BUILD_DEBUG}" ]]
|
||||
then
|
||||
# have to build deps with debug & release or the cmake won't find everything it needs
|
||||
mkdir deps/build/release
|
||||
pushd deps/build/release
|
||||
echo -e "cmake ../.. -DDESTDIR=\"../destdir\" $BUILD_ARGS"
|
||||
cmake ../.. -DDESTDIR="../destdir" $BUILD_ARGS
|
||||
make -j$NCORES
|
||||
popd
|
||||
cmake -S deps -B deps/build/release -G Ninja -DDESTDIR="../destdir" ${BUILD_ARGS}
|
||||
cmake --build deps/build/release
|
||||
BUILD_ARGS="${BUILD_ARGS} -DCMAKE_BUILD_TYPE=Debug"
|
||||
fi
|
||||
|
||||
# cmake deps
|
||||
pushd deps/build
|
||||
echo "cmake .. $BUILD_ARGS"
|
||||
cmake .. $BUILD_ARGS
|
||||
echo "done"
|
||||
|
||||
# make deps
|
||||
echo "[4/9] Building dependencies..."
|
||||
make deps -j$NCORES
|
||||
echo "done"
|
||||
|
||||
# rename wxscintilla # TODO: DeftDawg: Does OrcaSlicer need this?
|
||||
# echo "[5/9] Renaming wxscintilla library..."
|
||||
# pushd destdir/usr/local/lib
|
||||
# if [[ -z "$FOUND_GTK3_DEV" ]]
|
||||
# then
|
||||
# cp libwxscintilla-3.1.a libwx_gtk2u_scintilla-3.1.a
|
||||
# else
|
||||
# cp libwxscintilla-3.1.a libwx_gtk3u_scintilla-3.1.a
|
||||
# fi
|
||||
# popd
|
||||
# echo "done"
|
||||
|
||||
# FIXME: only clean deps if compiling succeeds; otherwise reruns waste tonnes of time!
|
||||
# clean deps
|
||||
# echo "[6/9] Cleaning dependencies..."
|
||||
# rm -rf dep_*
|
||||
popd
|
||||
echo "done"
|
||||
echo "cmake -S deps -B deps/build -G Ninja ${BUILD_ARGS}"
|
||||
cmake -S deps -B deps/build -G Ninja ${BUILD_ARGS}
|
||||
cmake --build deps/build
|
||||
fi
|
||||
|
||||
# Create main "build" directory
|
||||
if [ ! -d "build" ]
|
||||
then
|
||||
mkdir build
|
||||
fi
|
||||
|
||||
if [[ -n "$BUILD_ORCA" ]]
|
||||
if [[ -n "${BUILD_ORCA}" ]]
|
||||
then
|
||||
echo "[7/9] Configuring Slic3r..."
|
||||
echo "Configuring OrcaSlicer..."
|
||||
if [[ -n "${CLEAN_BUILD}" ]]
|
||||
then
|
||||
rm -fr build
|
||||
fi
|
||||
BUILD_ARGS=""
|
||||
if [[ -n "$FOUND_GTK3_DEV" ]]
|
||||
if [[ -n "${FOUND_GTK3_DEV}" ]]
|
||||
then
|
||||
BUILD_ARGS="-DSLIC3R_GTK=3"
|
||||
fi
|
||||
if [[ -n "$BUILD_DEBUG" ]]
|
||||
if [[ -n "${BUILD_DEBUG}" ]]
|
||||
then
|
||||
BUILD_ARGS="${BUILD_ARGS} -DCMAKE_BUILD_TYPE=Debug -DBBL_INTERNAL_TESTING=1"
|
||||
else
|
||||
BUILD_ARGS="${BUILD_ARGS} -DBBL_RELEASE_TO_PUBLIC=1 -DBBL_INTERNAL_TESTING=0"
|
||||
fi
|
||||
|
||||
# cmake
|
||||
pushd build
|
||||
echo -e "cmake .. -DCMAKE_PREFIX_PATH=\"$PWD/../deps/build/destdir/usr/local\" -DSLIC3R_STATIC=1 -DORCA_TOOLS=ON ${BUILD_ARGS}"
|
||||
cmake .. -DCMAKE_PREFIX_PATH="$PWD/../deps/build/destdir/usr/local" -DSLIC3R_STATIC=1 ${BUILD_ARGS} -DORCA_TOOLS=ON
|
||||
echo "done"
|
||||
|
||||
# make Slic3r
|
||||
echo "[8/9] Building Slic3r..."
|
||||
make -j$NCORES OrcaSlicer # Slic3r
|
||||
|
||||
# make OrcaSlicer_profile_validator
|
||||
make -j$NCORES OrcaSlicer_profile_validator
|
||||
popd
|
||||
echo -e "cmake -S . -B build -G Ninja -DCMAKE_PREFIX_PATH="${PWD}/deps/build/destdir/usr/local" -DSLIC3R_STATIC=1 ${BUILD_ARGS}"
|
||||
cmake -S . -B build -G Ninja \
|
||||
-DCMAKE_PREFIX_PATH="${PWD}/deps/build/destdir/usr/local" \
|
||||
-DSLIC3R_STATIC=1 \
|
||||
-DORCA_TOOLS=ON \
|
||||
${BUILD_ARGS}
|
||||
echo "done"
|
||||
echo "Building OrcaSlicer ..."
|
||||
cmake --build build --target OrcaSlicer
|
||||
echo "Building OrcaSlicer_profile_validator .."
|
||||
cmake --build build --target OrcaSlicer_profile_validator
|
||||
./run_gettext.sh
|
||||
echo "done"
|
||||
fi
|
||||
|
||||
if [[ -e $ROOT/build/src/BuildLinuxImage.sh ]]; then
|
||||
if [[ -e ${ROOT}/build/src/BuildLinuxImage.sh ]]; then
|
||||
# Give proper permissions to script
|
||||
chmod 755 $ROOT/build/src/BuildLinuxImage.sh
|
||||
chmod 755 ${ROOT}/build/src/BuildLinuxImage.sh
|
||||
|
||||
echo "[9/9] Generating Linux app..."
|
||||
pushd build
|
||||
if [[ -n "$BUILD_IMAGE" ]]
|
||||
if [[ -n "${BUILD_IMAGE}" ]]
|
||||
then
|
||||
$ROOT/build/src/BuildLinuxImage.sh -i
|
||||
${ROOT}/build/src/BuildLinuxImage.sh -i
|
||||
else
|
||||
$ROOT/build/src/BuildLinuxImage.sh
|
||||
${ROOT}/build/src/BuildLinuxImage.sh
|
||||
fi
|
||||
popd
|
||||
echo "done"
|
||||
|
|
|
|||
|
|
@ -271,9 +271,18 @@ if (NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMP
|
|||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53431
|
||||
# We will turn the warning of for GCC for now:
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||
# GCC generates loads of -Wunknown-pragmas when compiling igl. The fix is not easy due to a bug in gcc, see
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66943 or
|
||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53431
|
||||
# We will turn the warning of for GCC for now:
|
||||
add_compile_options(-Wno-unknown-pragmas)
|
||||
endif()
|
||||
|
||||
# Bit of a hack for flatpak building: compress the debug info with zstd to save space in CI
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 13.0)
|
||||
add_compile_options(-gz=zstd)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
if (SLIC3R_ASAN)
|
||||
|
|
@ -382,9 +391,7 @@ endif()
|
|||
# set(Boost_COMPILER "-mgw81")
|
||||
# boost::process was introduced first in version 1.64.0,
|
||||
# boost::beast::detail::base64 was introduced first in version 1.66.0
|
||||
set(MINIMUM_BOOST_VERSION "1.66.0")
|
||||
set(_boost_components "system;filesystem;thread;log;locale;regex;chrono;atomic;date_time;iostreams;program_options")
|
||||
find_package(Boost ${MINIMUM_BOOST_VERSION} REQUIRED COMPONENTS ${_boost_components})
|
||||
find_package(Boost 1.66 REQUIRED COMPONENTS system filesystem thread log locale regex chrono atomic date_time iostreams program_options)
|
||||
|
||||
add_library(boost_libs INTERFACE)
|
||||
add_library(boost_headeronly INTERFACE)
|
||||
|
|
@ -410,28 +417,8 @@ function(slic3r_remap_configs targets from_Cfg to_Cfg)
|
|||
endif()
|
||||
endfunction()
|
||||
|
||||
if(TARGET Boost::system)
|
||||
message(STATUS "Boost::boost exists")
|
||||
target_link_libraries(boost_headeronly INTERFACE Boost::boost)
|
||||
|
||||
# Only from cmake 3.12
|
||||
# list(TRANSFORM _boost_components PREPEND Boost:: OUTPUT_VARIABLE _boost_targets)
|
||||
set(_boost_targets "")
|
||||
foreach(comp ${_boost_components})
|
||||
list(APPEND _boost_targets "Boost::${comp}")
|
||||
endforeach()
|
||||
|
||||
target_link_libraries(boost_libs INTERFACE
|
||||
boost_headeronly # includes the custom compile definitions as well
|
||||
${_boost_targets}
|
||||
)
|
||||
slic3r_remap_configs("${_boost_targets}" RelWithDebInfo Release)
|
||||
else()
|
||||
target_include_directories(boost_headeronly INTERFACE ${Boost_INCLUDE_DIRS})
|
||||
target_link_libraries(boost_libs INTERFACE boost_headeronly ${Boost_LIBRARIES})
|
||||
endif()
|
||||
|
||||
|
||||
target_include_directories(boost_headeronly INTERFACE ${Boost_INCLUDE_DIRS})
|
||||
target_link_libraries(boost_libs INTERFACE boost_headeronly ${Boost_LIBRARIES})
|
||||
|
||||
# Find and configure intel-tbb
|
||||
if(SLIC3R_STATIC)
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@ docker run \
|
|||
--privileged=true \
|
||||
`# Attach tty for running orca slicer with command line things` \
|
||||
-ti \
|
||||
`# Clean up after yourself` \
|
||||
--rm \
|
||||
`# Pass all parameters from this script to the orca slicer ENTRYPOINT binary` \
|
||||
orcaslicer $*
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ RUN apt-get update && apt-get install -y \
|
|||
libsoup2.4-dev \
|
||||
libssl3 \
|
||||
libssl-dev \
|
||||
libtool \
|
||||
libudev-dev \
|
||||
libwayland-dev \
|
||||
libwebkit2gtk-4.0-dev \
|
||||
|
|
@ -67,9 +68,8 @@ WORKDIR OrcaSlicer
|
|||
RUN ./BuildLinux.sh -u
|
||||
|
||||
# Build dependencies in ./deps
|
||||
RUN ./BuildLinux.sh -d; exit 0
|
||||
RUN ./BuildLinux.sh -d
|
||||
|
||||
RUN apt-get install -y libcgal-dev
|
||||
# Build slic3r
|
||||
RUN ./BuildLinux.sh -s
|
||||
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ Support me
|
|||
[](https://ko-fi.com/G2G5IP3CP)
|
||||
|
||||
## Some background
|
||||
OrcaSlicer is originaly forked from Bambu Studio, it was previously known as BambuStudio-SoftFever.
|
||||
OrcaSlicer is originally forked from Bambu Studio, it was previously known as BambuStudio-SoftFever.
|
||||
|
||||
Bambu Studio is forked from [PrusaSlicer](https://github.com/prusa3d/PrusaSlicer) by Prusa Research, which is from [Slic3r](https://github.com/Slic3r/Slic3r) by Alessandro Ranellucci and the RepRap community.
|
||||
Orca Slicer incorporates a lot of features from SuperSlicer by @supermerill
|
||||
|
|
|
|||
|
|
@ -26,17 +26,19 @@
|
|||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${MACOSX_BUNDLE_BUNDLE_VERSION}</string>
|
||||
<key>ATSApplicationFontsPath</key>
|
||||
<string>fonts/</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>orcasliceropen url</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>orcasliceropen</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>OrcaSlicer Downloads</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>orcaslicer</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
|||
123
deps/CMakeLists.txt
vendored
|
|
@ -42,6 +42,10 @@ endif ()
|
|||
|
||||
set(DESTDIR "${CMAKE_CURRENT_BINARY_DIR}/destdir" CACHE PATH "Destination directory")
|
||||
set(DEP_DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}/../DL_CACHE CACHE PATH "Path for downloaded source packages.")
|
||||
set(FLATPAK FALSE CACHE BOOL "Toggles various build settings for flatpak, like /usr/local in DESTDIR or not building wxwidgets")
|
||||
if (NOT FLATPAK)
|
||||
set(DESTDIR "${DESTDIR}/usr/local/")
|
||||
endif()
|
||||
|
||||
get_property(_is_multi GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||
|
||||
|
|
@ -120,13 +124,13 @@ if (NOT IS_CROSS_COMPILE OR NOT APPLE)
|
|||
ExternalProject_Add(
|
||||
dep_${projectname}
|
||||
EXCLUDE_FROM_ALL ON
|
||||
INSTALL_DIR ${DESTDIR}/usr/local
|
||||
INSTALL_DIR ${DESTDIR}
|
||||
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/${projectname}
|
||||
${_gen}
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX:STRING=${DESTDIR}/usr/local
|
||||
-DCMAKE_INSTALL_PREFIX:STRING=${DESTDIR}
|
||||
-DCMAKE_MODULE_PATH:STRING=${PROJECT_SOURCE_DIR}/../cmake/modules
|
||||
-DCMAKE_PREFIX_PATH:STRING=${DESTDIR}/usr/local
|
||||
-DCMAKE_PREFIX_PATH:STRING=${DESTDIR}
|
||||
-DCMAKE_DEBUG_POSTFIX:STRING=d
|
||||
-DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
|
||||
|
|
@ -140,16 +144,26 @@ if (NOT IS_CROSS_COMPILE OR NOT APPLE)
|
|||
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config Release -- ${_build_j}
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config Release
|
||||
)
|
||||
else()
|
||||
elseif(FLATPAK)
|
||||
# the only reason this is here is because of the HACK at the bottom for ci
|
||||
#
|
||||
# note for future devs: shared libs may actually create a size reduction
|
||||
# but orcaslicer_deps tends to get really funny regarding linking after that (notably boost)
|
||||
# so, as much as I would like to use that, it's not happening
|
||||
ExternalProject_Add(
|
||||
dep_${projectname}
|
||||
EXCLUDE_FROM_ALL ON
|
||||
INSTALL_DIR ${DESTDIR}/usr/local
|
||||
INSTALL_DIR ${DESTDIR}
|
||||
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/${projectname}
|
||||
${_gen}
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX:STRING=${DESTDIR}/usr/local
|
||||
-DCMAKE_PREFIX_PATH:STRING=${DESTDIR}/usr/local
|
||||
-DCMAKE_INSTALL_PREFIX:STRING=${DESTDIR}
|
||||
-DCMAKE_MODULE_PATH:STRING=${PROJECT_SOURCE_DIR}/../cmake/modules
|
||||
-DCMAKE_PREFIX_PATH:STRING=${DESTDIR}
|
||||
-DCMAKE_DEBUG_POSTFIX:STRING=d
|
||||
-DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
|
||||
-DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
|
||||
-DBUILD_SHARED_LIBS:BOOL=OFF
|
||||
${_cmake_osx_arch}
|
||||
"${_configs_line}"
|
||||
|
|
@ -158,6 +172,29 @@ else()
|
|||
${P_ARGS_UNPARSED_ARGUMENTS}
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config Release -- ${_build_j}
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config Release
|
||||
# HACK: save space after each compile job, because CI
|
||||
# reasoning: cmake changes directory after this command, so just keep only the folders
|
||||
# so that it can navigate out
|
||||
COMMAND find "${CMAKE_BINARY_DIR}/dep_${projectname}-prefix/" -type f -delete
|
||||
)
|
||||
else()
|
||||
ExternalProject_Add(
|
||||
dep_${projectname}
|
||||
EXCLUDE_FROM_ALL ON
|
||||
INSTALL_DIR ${DESTDIR}
|
||||
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/${projectname}
|
||||
${_gen}
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX:STRING=${DESTDIR}
|
||||
-DCMAKE_PREFIX_PATH:STRING=${DESTDIR}
|
||||
-DBUILD_SHARED_LIBS:BOOL=OFF
|
||||
${_cmake_osx_arch}
|
||||
"${_configs_line}"
|
||||
${DEP_CMAKE_OPTS}
|
||||
${P_ARGS_CMAKE_ARGS}
|
||||
${P_ARGS_UNPARSED_ARGUMENTS}
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config Release -- ${_build_j}
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config Release
|
||||
)
|
||||
|
||||
endif()
|
||||
|
|
@ -203,6 +240,20 @@ else()
|
|||
include("deps-linux.cmake")
|
||||
endif()
|
||||
|
||||
if(FLATPAK)
|
||||
# flatpak bundles some deps with the layer, so attempt to find them first
|
||||
# also, yes, this reduces CI by not needing to vendor certain deps
|
||||
find_package(ZLIB)
|
||||
find_package(PNG)
|
||||
find_package(EXPAT)
|
||||
find_package(CURL)
|
||||
find_package(JPEG)
|
||||
find_package(TIFF)
|
||||
find_package(Freetype)
|
||||
find_package(OpenSSL 1.1...<3.2)
|
||||
find_package(CURL)
|
||||
endif()
|
||||
|
||||
set(ZLIB_PKG "")
|
||||
if (NOT ZLIB_FOUND)
|
||||
include(ZLIB/ZLIB.cmake)
|
||||
|
|
@ -214,6 +265,7 @@ if (NOT PNG_FOUND)
|
|||
set(PNG_PKG dep_PNG)
|
||||
endif ()
|
||||
set(EXPAT_PKG "")
|
||||
find_package(EXPAT)
|
||||
if (NOT EXPAT_FOUND)
|
||||
include(EXPAT/EXPAT.cmake)
|
||||
set(EXPAT_PKG dep_EXPAT)
|
||||
|
|
@ -226,6 +278,7 @@ include(Boost/Boost.cmake)
|
|||
include(Cereal/Cereal.cmake)
|
||||
include(Qhull/Qhull.cmake)
|
||||
include(GLEW/GLEW.cmake)
|
||||
|
||||
include(GLFW/GLFW.cmake)
|
||||
include(OpenCSG/OpenCSG.cmake)
|
||||
|
||||
|
|
@ -241,32 +294,69 @@ include(CGAL/CGAL.cmake)
|
|||
|
||||
include(NLopt/NLopt.cmake)
|
||||
|
||||
include(OpenSSL/OpenSSL.cmake)
|
||||
|
||||
# I *think* 1.1 is used for *just* md5 hashing?
|
||||
# 3.1 has everything in the right place, but the md5 funcs used are deprecated
|
||||
# a grep across the repo shows it is used for other things
|
||||
# TODO: update openssl and everything that uses <openssl/md5.h>
|
||||
set(OPENSSL_PKG "")
|
||||
if(NOT OPENSSL_FOUND)
|
||||
include(OpenSSL/OpenSSL.cmake)
|
||||
set(OPENSSL_PKG dep_OpenSSL)
|
||||
endif()
|
||||
|
||||
# we don't want to load a "wrong" openssl when loading curl
|
||||
# so, just don't even bother
|
||||
# ...i think this is how it works? change if wrong
|
||||
set(CURL_PKG "")
|
||||
if (NOT CURL_FOUND)
|
||||
if (NOT OPENSSL_FOUND OR NOT CURL_FOUND)
|
||||
include(CURL/CURL.cmake)
|
||||
set(CURL_PKG dep_CURL)
|
||||
endif ()
|
||||
|
||||
include(JPEG/JPEG.cmake)
|
||||
include(TIFF/TIFF.cmake)
|
||||
include(wxWidgets/wxWidgets.cmake)
|
||||
set(JPEG_PKG "")
|
||||
if (NOT JPEG_FOUND)
|
||||
include(JPEG/JPEG.cmake)
|
||||
set(JPEG_PKG dep_JPEG)
|
||||
endif()
|
||||
|
||||
set(TIFF_PKG "")
|
||||
if (NOT TIFF_FOUND)
|
||||
include(TIFF/TIFF.cmake)
|
||||
set(TIFF_PKG "dep_TIFF")
|
||||
endif()
|
||||
|
||||
# flatpak builds wxwidgets separately
|
||||
set(WXWIDGETS_PKG "")
|
||||
if (NOT FLATPAK)
|
||||
include(wxWidgets/wxWidgets.cmake)
|
||||
set(WXWIDGETS_PKG "dep_wxWidgets")
|
||||
endif()
|
||||
|
||||
set(FREETYPE_PKG "")
|
||||
if(NOT FREETYPE_FOUND)
|
||||
include(FREETYPE/FREETYPE.cmake)
|
||||
set(FREETYPE_PKG "dep_FREETYPE")
|
||||
endif()
|
||||
|
||||
include(OCCT/OCCT.cmake)
|
||||
include(FREETYPE/FREETYPE.cmake)
|
||||
include(OpenCV/OpenCV.cmake)
|
||||
|
||||
set(_dep_list
|
||||
dep_Boost
|
||||
dep_TBB
|
||||
${OPENSSL_PKG}
|
||||
${CURL_PKG}
|
||||
dep_wxWidgets
|
||||
${WXWIDGETS_PKG}
|
||||
dep_Cereal
|
||||
dep_NLopt
|
||||
dep_OpenVDB
|
||||
dep_OpenCSG
|
||||
dep_OpenCV
|
||||
dep_CGAL
|
||||
dep_OpenSSL
|
||||
dep_GLFW
|
||||
dep_OCCT
|
||||
${FREETYPE_PKG}
|
||||
${PNG_PKG}
|
||||
${ZLIB_PKG}
|
||||
${EXPAT_PKG}
|
||||
|
|
@ -281,9 +371,6 @@ else()
|
|||
#list(APPEND _dep_list "dep_libigl")
|
||||
endif()
|
||||
|
||||
list(APPEND _dep_list "dep_OCCT")
|
||||
list(APPEND _dep_list "dep_FREETYPE")
|
||||
|
||||
add_custom_target(deps ALL DEPENDS ${_dep_list})
|
||||
|
||||
# Note: I'm not using any of the LOG_xxx options in ExternalProject_Add() commands
|
||||
|
|
|
|||
7
deps/CURL/CURL.cmake
vendored
|
|
@ -72,9 +72,10 @@ orcaslicer_add_cmake_project(CURL
|
|||
${_curl_platform_flags}
|
||||
)
|
||||
|
||||
# if (APPLE OR (CMAKE_SYSTEM_NAME STREQUAL "Linux"))
|
||||
add_dependencies(dep_CURL dep_OpenSSL)
|
||||
# endif ()
|
||||
if(NOT OPENSSL_FOUND)
|
||||
# (openssl may or may not be built)
|
||||
add_dependencies(dep_CURL ${OPENSSL_PKG})
|
||||
endif()
|
||||
|
||||
if (MSVC)
|
||||
add_debug_dep(dep_CURL)
|
||||
|
|
|
|||
17
deps/GMP/GMP.cmake
vendored
|
|
@ -1,17 +1,16 @@
|
|||
|
||||
set(_srcdir ${CMAKE_CURRENT_LIST_DIR}/gmp)
|
||||
set(_dstdir ${DESTDIR}/usr/local)
|
||||
|
||||
if (MSVC)
|
||||
set(_output ${_dstdir}/include/gmp.h
|
||||
${_dstdir}/lib/libgmp-10.lib
|
||||
${_dstdir}/bin/libgmp-10.dll)
|
||||
set(_output ${DESTDIR}/include/gmp.h
|
||||
${DESTDIR}/lib/libgmp-10.lib
|
||||
${DESTDIR}/bin/libgmp-10.dll)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${_output}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${_srcdir}/include/gmp.h ${_dstdir}/include/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${_srcdir}/lib/win${DEPS_BITS}/libgmp-10.lib ${_dstdir}/lib/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${_srcdir}/lib/win${DEPS_BITS}/libgmp-10.dll ${_dstdir}/bin/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${_srcdir}/include/gmp.h ${DESTDIR}/include/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${_srcdir}/lib/win${DEPS_BITS}/libgmp-10.lib ${DESTDIR}/lib/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${_srcdir}/lib/win${DEPS_BITS}/libgmp-10.dll ${DESTDIR}/bin/
|
||||
)
|
||||
|
||||
add_custom_target(dep_GMP SOURCES ${_output})
|
||||
|
|
@ -61,8 +60,8 @@ else ()
|
|||
URL_HASH SHA256=eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c
|
||||
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/GMP
|
||||
BUILD_IN_SOURCE ON
|
||||
CONFIGURE_COMMAND env "CFLAGS=${_gmp_ccflags}" "CXXFLAGS=${_gmp_ccflags}" ./configure ${_cross_compile_arg} --enable-shared=no --enable-cxx=yes --enable-static=yes "--prefix=${DESTDIR}/usr/local" ${_gmp_build_tgt}
|
||||
CONFIGURE_COMMAND env "CFLAGS=${_gmp_ccflags}" "CXXFLAGS=${_gmp_ccflags}" ./configure ${_cross_compile_arg} --enable-shared=no --enable-cxx=yes --enable-static=yes "--prefix=${DESTDIR}" ${_gmp_build_tgt}
|
||||
BUILD_COMMAND make -j
|
||||
INSTALL_COMMAND make install
|
||||
)
|
||||
endif ()
|
||||
endif ()
|
||||
|
|
|
|||
19
deps/MPFR/MPFR.cmake
vendored
|
|
@ -1,18 +1,17 @@
|
|||
set(_srcdir ${CMAKE_CURRENT_LIST_DIR}/mpfr)
|
||||
set(_dstdir ${DESTDIR}/usr/local)
|
||||
|
||||
if (MSVC)
|
||||
set(_output ${_dstdir}/include/mpfr.h
|
||||
${_dstdir}/include/mpf2mpfr.h
|
||||
${_dstdir}/lib/libmpfr-4.lib
|
||||
${_dstdir}/bin/libmpfr-4.dll)
|
||||
set(_output ${DESTDIR}/include/mpfr.h
|
||||
${DESTDIR}/include/mpf2mpfr.h
|
||||
${DESTDIR}/lib/libmpfr-4.lib
|
||||
${DESTDIR}/bin/libmpfr-4.dll)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${_output}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${_srcdir}/include/mpfr.h ${_dstdir}/include/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${_srcdir}/include/mpf2mpfr.h ${_dstdir}/include/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${_srcdir}/lib/win${DEPS_BITS}/libmpfr-4.lib ${_dstdir}/lib/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${_srcdir}/lib/win${DEPS_BITS}/libmpfr-4.dll ${_dstdir}/bin/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${_srcdir}/include/mpfr.h ${DESTDIR}/include/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${_srcdir}/include/mpf2mpfr.h ${DESTDIR}/include/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${_srcdir}/lib/win${DEPS_BITS}/libmpfr-4.lib ${DESTDIR}/lib/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${_srcdir}/lib/win${DEPS_BITS}/libmpfr-4.dll ${DESTDIR}/bin/
|
||||
)
|
||||
|
||||
add_custom_target(dep_MPFR SOURCES ${_output})
|
||||
|
|
@ -31,7 +30,7 @@ else ()
|
|||
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/MPFR
|
||||
BUILD_IN_SOURCE ON
|
||||
CONFIGURE_COMMAND autoreconf -f -i &&
|
||||
env "CFLAGS=${_gmp_ccflags}" "CXXFLAGS=${_gmp_ccflags}" ./configure ${_cross_compile_arg} --prefix=${DESTDIR}/usr/local --enable-shared=no --enable-static=yes --with-gmp=${DESTDIR}/usr/local ${_gmp_build_tgt}
|
||||
env "CFLAGS=${_gmp_ccflags}" "CXXFLAGS=${_gmp_ccflags}" ./configure ${_cross_compile_arg} --prefix=${DESTDIR} --enable-shared=no --enable-static=yes --with-gmp=${DESTDIR} ${_gmp_build_tgt}
|
||||
BUILD_COMMAND make -j
|
||||
INSTALL_COMMAND make install
|
||||
DEPENDS dep_GMP
|
||||
|
|
|
|||
4
deps/OCCT/OCCT.cmake
vendored
|
|
@ -14,7 +14,7 @@ orcaslicer_add_cmake_project(OCCT
|
|||
#PATCH_COMMAND ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/0001-OCCT-fix.patch
|
||||
PATCH_COMMAND git apply --directory ${BINARY_DIR_REL}/dep_OCCT-prefix/src/dep_OCCT --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-OCCT-fix.patch
|
||||
#DEPENDS dep_Boost
|
||||
#DEPENDS dep_FREETYPE
|
||||
DEPENDS ${FREETYPE_PKG}
|
||||
CMAKE_ARGS
|
||||
-DBUILD_LIBRARY_TYPE=${library_build_type}
|
||||
-DUSE_TK=OFF
|
||||
|
|
@ -31,4 +31,4 @@ orcaslicer_add_cmake_project(OCCT
|
|||
-DBUILD_MODULE_Visualization=OFF
|
||||
)
|
||||
|
||||
add_dependencies(dep_OCCT dep_FREETYPE)
|
||||
# add_dependencies(dep_OCCT ${FREETYPE_PKG})
|
||||
|
|
|
|||
52
deps/OpenCV/0001-vs2022.patch
vendored
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
From 6fb3f6333150a777e835fc7c48e49750591bf7fe Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Buch <bebuch@users.noreply.github.com>
|
||||
Date: Thu, 23 May 2024 16:05:19 +0200
|
||||
Subject: [PATCH] Support VS 2022 17.1x.y
|
||||
|
||||
With 17.10.0 the MSVC toolset was set to 19.40.x which breaks the compatibility test in the OpenCV's CMake Config files.
|
||||
---
|
||||
cmake/templates/OpenCVConfig.root-WIN32.cmake.in | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/cmake/templates/OpenCVConfig.root-WIN32.cmake.in b/cmake/templates/OpenCVConfig.root-WIN32.cmake.in
|
||||
index b0f254ebe8..62e36272f3 100644
|
||||
--- a/cmake/templates/OpenCVConfig.root-WIN32.cmake.in
|
||||
+++ b/cmake/templates/OpenCVConfig.root-WIN32.cmake.in
|
||||
@@ -137,7 +137,7 @@ elseif(MSVC)
|
||||
set(OpenCV_RUNTIME vc14) # selecting previous compatible runtime version
|
||||
endif()
|
||||
endif()
|
||||
- elseif(MSVC_VERSION MATCHES "^193[0-9]$")
|
||||
+ elseif(MSVC_VERSION MATCHES "^19[34][0-9]$")
|
||||
set(OpenCV_RUNTIME vc17)
|
||||
check_one_config(has_VS2022)
|
||||
if(NOT has_VS2022)
|
||||
--
|
||||
2.45.2.windows.1
|
||||
|
||||
From f85818ba6f9031c450475a7453dee0acce31a881 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Buch <bebuch@users.noreply.github.com>
|
||||
Date: Fri, 24 May 2024 11:10:09 +0200
|
||||
Subject: [PATCH] Support VS 2022 17.1x.y in OpenCVDetectCXXCompiler.cmake
|
||||
|
||||
With 17.10.0 the MSVC toolset was set to 19.40.x which breaks the compatibility test in the OpenCV's CMake Config files.
|
||||
---
|
||||
cmake/OpenCVDetectCXXCompiler.cmake | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/cmake/OpenCVDetectCXXCompiler.cmake b/cmake/OpenCVDetectCXXCompiler.cmake
|
||||
index 1743aca11f..448afd46ea 100644
|
||||
--- a/cmake/OpenCVDetectCXXCompiler.cmake
|
||||
+++ b/cmake/OpenCVDetectCXXCompiler.cmake
|
||||
@@ -176,7 +176,7 @@ elseif(MSVC)
|
||||
set(OpenCV_RUNTIME vc15)
|
||||
elseif(MSVC_VERSION MATCHES "^192[0-9]$")
|
||||
set(OpenCV_RUNTIME vc16)
|
||||
- elseif(MSVC_VERSION MATCHES "^193[0-9]$")
|
||||
+ elseif(MSVC_VERSION MATCHES "^19[34][0-9]$")
|
||||
set(OpenCV_RUNTIME vc17)
|
||||
else()
|
||||
message(WARNING "OpenCV does not recognize MSVC_VERSION \"${MSVC_VERSION}\". Cannot set OpenCV_RUNTIME")
|
||||
--
|
||||
2.45.2.windows.1
|
||||
|
||||
73
deps/OpenCV/OpenCV.cmake
vendored
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
if (MSVC)
|
||||
set(_use_IPP "-DWITH_IPP=ON")
|
||||
else ()
|
||||
set(_use_IPP "-DWITH_IPP=OFF")
|
||||
endif ()
|
||||
|
||||
orcaslicer_add_cmake_project(OpenCV
|
||||
URL https://github.com/opencv/opencv/archive/refs/tags/4.6.0.tar.gz
|
||||
URL_HASH SHA256=1ec1cba65f9f20fe5a41fda1586e01c70ea0c9a6d7b67c9e13edf0cfe2239277
|
||||
PATCH_COMMAND git apply --directory ${BINARY_DIR_REL}/dep_OpenCV-prefix/src/dep_OpenCV --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-vs2022.patch
|
||||
CMAKE_ARGS
|
||||
-DBUILD_SHARED_LIBS=0
|
||||
-DBUILD_PERE_TESTS=OFF
|
||||
-DBUILD_TESTS=OFF
|
||||
-DBUILD_opencv_python_tests=OFF
|
||||
-DBUILD_EXAMPLES=OFF
|
||||
-DBUILD_JASPER=OFF
|
||||
-DBUILD_JAVA=OFF
|
||||
-DBUILD_JPEG=ON
|
||||
-DBUILD_APPS_LIST=version
|
||||
-DBUILD_opencv_apps=OFF
|
||||
-DBUILD_opencv_java=OFF
|
||||
-DBUILD_OPENEXR=OFF
|
||||
-DBUILD_PNG=ON
|
||||
-DBUILD_TBB=OFF
|
||||
-DBUILD_WEBP=OFF
|
||||
-DBUILD_ZLIB=OFF
|
||||
-DWITH_1394=OFF
|
||||
-DWITH_CUDA=OFF
|
||||
-DWITH_EIGEN=OFF
|
||||
${_use_IPP}
|
||||
-DWITH_ITT=OFF
|
||||
-DWITH_FFMPEG=OFF
|
||||
-DWITH_GPHOTO2=OFF
|
||||
-DWITH_GSTREAMER=OFF
|
||||
-DOPENCV_GAPI_GSTREAMER=OFF
|
||||
-DWITH_GTK_2_X=OFF
|
||||
-DWITH_JASPER=OFF
|
||||
-DWITH_LAPACK=OFF
|
||||
-DWITH_MATLAB=OFF
|
||||
-DWITH_MFX=OFF
|
||||
-DWITH_DIRECTX=OFF
|
||||
-DWITH_DIRECTML=OFF
|
||||
-DWITH_OPENCL=OFF
|
||||
-DWITH_OPENCL_D3D11_NV=OFF
|
||||
-DWITH_OPENCLAMDBLAS=OFF
|
||||
-DWITH_OPENCLAMDFFT=OFF
|
||||
-DWITH_OPENEXR=OFF
|
||||
-DWITH_OPENJPEG=OFF
|
||||
-DWITH_QUIRC=OFF
|
||||
-DWITH_VTK=OFF
|
||||
-DWITH_WEBP=OFF
|
||||
-DENABLE_PRECOMPILED_HEADERS=OFF
|
||||
-DINSTALL_TESTS=OFF
|
||||
-DINSTALL_C_EXAMPLES=OFF
|
||||
-DINSTALL_PYTHON_EXAMPLES=OFF
|
||||
-DOPENCV_GENERATE_SETUPVARS=OFF
|
||||
-DOPENCV_INSTALL_FFMPEG_DOWNLOAD_SCRIPT=OFF
|
||||
-DBUILD_opencv_python2=OFF
|
||||
-DBUILD_opencv_python3=OFF
|
||||
-DWITH_OPENVINO=OFF
|
||||
-DWITH_INF_ENGINE=OFF
|
||||
-DWITH_NGRAPH=OFF
|
||||
-DBUILD_WITH_STATIC_CRT=OFF#set /MDd /MD
|
||||
-DBUILD_LIST=core,imgcodecs,imgproc,world
|
||||
-DBUILD_opencv_highgui=OFF
|
||||
-DWITH_ADE=OFF
|
||||
-DBUILD_opencv_world=ON
|
||||
-DWITH_PROTOBUF=OFF
|
||||
-DWITH_WIN32UI=OFF
|
||||
-DHAVE_WIN32UI=FALSE
|
||||
)
|
||||
|
||||
6
deps/OpenEXR/OpenEXR.cmake
vendored
|
|
@ -15,11 +15,11 @@ if (APPLE AND IS_CROSS_COMPILE)
|
|||
EXCLUDE_FROM_ALL ON
|
||||
URL https://github.com/AcademySoftwareFoundation/openexr/archive/refs/tags/v2.5.5.zip
|
||||
URL_HASH SHA256=0307a3d7e1fa1e77e9d84d7e9a8694583fbbbfd50bdc6884e2c96b8ef6b902de
|
||||
INSTALL_DIR ${DESTDIR}/usr/local
|
||||
INSTALL_DIR ${DESTDIR}
|
||||
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/OpenEXR
|
||||
${_openxr_list_sep}
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX:STRING=${DESTDIR}/usr/local
|
||||
-DCMAKE_INSTALL_PREFIX:STRING=${DESTDIR}
|
||||
-DBUILD_SHARED_LIBS:BOOL=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
-DBUILD_TESTING=OFF
|
||||
|
|
@ -54,4 +54,4 @@ endif()
|
|||
|
||||
if (MSVC)
|
||||
add_debug_dep(dep_OpenEXR)
|
||||
endif ()
|
||||
endif ()
|
||||
|
|
|
|||
6
deps/OpenSSL/OpenSSL.cmake
vendored
|
|
@ -46,8 +46,8 @@ ExternalProject_Add(dep_OpenSSL
|
|||
# URL_HASH SHA256=8c776993154652d0bb393f506d850b811517c8bd8d24b1008aef57fbe55d3f31
|
||||
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/OpenSSL
|
||||
CONFIGURE_COMMAND ${_conf_cmd} ${_cross_arch}
|
||||
"--openssldir=${DESTDIR}/usr/local"
|
||||
"--prefix=${DESTDIR}/usr/local"
|
||||
"--openssldir=${DESTDIR}"
|
||||
"--prefix=${DESTDIR}"
|
||||
${_cross_comp_prefix_line}
|
||||
no-shared
|
||||
no-asm
|
||||
|
|
@ -61,6 +61,6 @@ ExternalProject_Add(dep_OpenSSL
|
|||
ExternalProject_Add_Step(dep_OpenSSL install_cmake_files
|
||||
DEPENDEES install
|
||||
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory openssl "${DESTDIR}/usr/local/${CMAKE_INSTALL_LIBDIR}/cmake/openssl"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory openssl "${DESTDIR}${CMAKE_INSTALL_LIBDIR}/cmake/openssl"
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}"
|
||||
)
|
||||
|
|
|
|||
79
deps/TBB/GNU.cmake
vendored
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
# Copyright (c) 2020-2021 Intel Corporation
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
if (MINGW)
|
||||
set(TBB_LINK_DEF_FILE_FLAG "")
|
||||
set(TBB_DEF_FILE_PREFIX "")
|
||||
elseif (APPLE)
|
||||
set(TBB_LINK_DEF_FILE_FLAG -Wl,-exported_symbols_list,)
|
||||
set(TBB_DEF_FILE_PREFIX mac${TBB_ARCH})
|
||||
|
||||
# For correct ucontext.h structures layout
|
||||
set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -D_XOPEN_SOURCE)
|
||||
else()
|
||||
set(TBB_LINK_DEF_FILE_FLAG -Wl,--version-script=)
|
||||
set(TBB_DEF_FILE_PREFIX lin${TBB_ARCH})
|
||||
endif()
|
||||
|
||||
# Add -Wno-error=stringop-overflow to fix GCC 12+ build as suggested on https://github.com/oneapi-src/oneTBB/issues/843#issuecomment-1152646035
|
||||
set(TBB_WARNING_LEVEL -Wall -Wextra $<$<BOOL:${TBB_STRICT}>:-Werror> -Wfatal-errors -Wno-error=stringop-overflow)
|
||||
set(TBB_TEST_WARNING_FLAGS -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor)
|
||||
|
||||
# Depfile options (e.g. -MD) are inserted automatically in some cases.
|
||||
# Don't add -MMD to avoid conflicts in such cases.
|
||||
if (NOT CMAKE_GENERATOR MATCHES "Ninja" AND NOT CMAKE_CXX_DEPENDS_USE_COMPILER)
|
||||
set(TBB_MMD_FLAG -MMD)
|
||||
endif()
|
||||
|
||||
# Enable Intel(R) Transactional Synchronization Extensions (-mrtm) and WAITPKG instructions support (-mwaitpkg) on relevant processors
|
||||
if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|AMD64)")
|
||||
set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -mrtm $<$<AND:$<NOT:$<CXX_COMPILER_ID:Intel>>,$<NOT:$<VERSION_LESS:${CMAKE_CXX_COMPILER_VERSION},11.0>>>:-mwaitpkg>)
|
||||
endif()
|
||||
|
||||
if (NOT MINGW)
|
||||
set(TBB_COMMON_LINK_LIBS dl)
|
||||
endif()
|
||||
|
||||
# Ignore -Werror set through add_compile_options() or added to CMAKE_CXX_FLAGS if TBB_STRICT is disabled.
|
||||
if (NOT TBB_STRICT AND COMMAND tbb_remove_compile_flag)
|
||||
tbb_remove_compile_flag(-Werror)
|
||||
endif()
|
||||
|
||||
if (NOT ${CMAKE_CXX_COMPILER_ID} STREQUAL Intel)
|
||||
# gcc 6.0 and later have -flifetime-dse option that controls elimination of stores done outside the object lifetime
|
||||
set(TBB_DSE_FLAG $<$<NOT:$<VERSION_LESS:${CMAKE_CXX_COMPILER_VERSION},6.0>>:-flifetime-dse=1>)
|
||||
endif()
|
||||
|
||||
# Workaround for heavy tests and too many symbols in debug (rellocation truncated to fit: R_MIPS_CALL16)
|
||||
if ("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "mips")
|
||||
set(TBB_TEST_COMPILE_FLAGS ${TBB_TEST_COMPILE_FLAGS} -DTBB_TEST_LOW_WORKLOAD $<$<CONFIG:DEBUG>:-mxgot>)
|
||||
endif()
|
||||
|
||||
if (MINGW)
|
||||
list(APPEND TBB_COMMON_COMPILE_FLAGS -U__STRICT_ANSI__)
|
||||
endif()
|
||||
|
||||
# For some reason GCC does not instrument code with Thread Sanitizer when lto is enabled and C linker is used.
|
||||
if (NOT TBB_SANITIZE MATCHES "thread")
|
||||
set(TBB_IPO_COMPILE_FLAGS $<$<NOT:$<CONFIG:Debug>>:-flto>)
|
||||
set(TBB_IPO_LINK_FLAGS $<$<NOT:$<CONFIG:Debug>>:-flto>)
|
||||
endif()
|
||||
|
||||
# Disable lto flag
|
||||
set(TBB_IPO_COMPILE_FLAGS "")
|
||||
set(TBB_IPO_LINK_FLAGS "")
|
||||
|
||||
# TBB malloc settings
|
||||
set(TBBMALLOC_LIB_COMPILE_FLAGS -fno-rtti -fno-exceptions)
|
||||
set(TBB_OPENMP_FLAG -fopenmp)
|
||||
8
deps/TBB/TBB.cmake
vendored
|
|
@ -1,8 +1,14 @@
|
|||
if (FLATPAK)
|
||||
set(_patch_command ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR}/GNU.cmake ./cmake/compilers/GNU.cmake)
|
||||
else()
|
||||
set(_patch_command "")
|
||||
endif()
|
||||
|
||||
orcaslicer_add_cmake_project(
|
||||
TBB
|
||||
URL "https://github.com/oneapi-src/oneTBB/archive/refs/tags/v2021.5.0.zip"
|
||||
URL_HASH SHA256=83ea786c964a384dd72534f9854b419716f412f9d43c0be88d41874763e7bb47
|
||||
#PATCH_COMMAND ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/0001-TBB-GCC13.patch
|
||||
PATCH_COMMAND ${_patch_command}
|
||||
CMAKE_ARGS
|
||||
-DTBB_BUILD_SHARED=OFF
|
||||
-DTBB_BUILD_TESTS=OFF
|
||||
|
|
|
|||
4
deps/deps-windows.cmake
vendored
|
|
@ -15,8 +15,8 @@ elseif (MSVC_VERSION LESS 1930)
|
|||
# 1920-1929 = VS 16.0 (v142 toolset)
|
||||
set(DEP_VS_VER "16")
|
||||
set(DEP_BOOST_TOOLSET "msvc-14.2")
|
||||
elseif (MSVC_VERSION LESS 1940)
|
||||
# 1930-1939 = VS 17.0 (v143 toolset)
|
||||
elseif (MSVC_VERSION LESS 1950)
|
||||
# 1930-1949 = VS 17.0 (v143 toolset)
|
||||
set(DEP_VS_VER "17")
|
||||
set(DEP_BOOST_TOOLSET "msvc-14.3")
|
||||
else ()
|
||||
|
|
|
|||
|
|
@ -1,683 +0,0 @@
|
|||
From f4fef135f0a58ca2916c45cd539923ab096935b6 Mon Sep 17 00:00:00 2001
|
||||
From: Ocraftyone <Ocraftyone@users.noreply.github.com>
|
||||
Date: Thu, 30 Nov 2023 03:25:54 -0500
|
||||
Subject: [PATCH] patch v3.2.1 for OrcaSlicer
|
||||
|
||||
---
|
||||
build/cmake/lib/webview/CMakeLists.txt | 4 +-
|
||||
include/wx/fontutil.h | 15 +++++++-
|
||||
include/wx/gdicmn.h | 3 ++
|
||||
include/wx/generic/grid.h | 4 +-
|
||||
include/wx/msw/font.h | 2 +-
|
||||
include/wx/msw/tooltip.h | 4 +-
|
||||
include/wx/osx/app.h | 2 +-
|
||||
src/common/combocmn.cpp | 11 +++++-
|
||||
src/common/datavcmn.cpp | 6 ++-
|
||||
src/common/dcbufcmn.cpp | 6 +++
|
||||
src/common/gdicmn.cpp | 14 +++++++
|
||||
src/common/image.cpp | 6 +--
|
||||
src/generic/grid.cpp | 50 ++++++++++++++++++++-----
|
||||
src/msw/bmpcbox.cpp | 9 ++++-
|
||||
src/msw/font.cpp | 14 +++----
|
||||
src/msw/menuitem.cpp | 2 +
|
||||
src/msw/window.cpp | 52 +++++++++++++++++---------
|
||||
src/osx/cocoa/dataview.mm | 26 +++++++++++--
|
||||
src/osx/cocoa/settings.mm | 6 +--
|
||||
src/osx/cocoa/window.mm | 4 ++
|
||||
20 files changed, 184 insertions(+), 56 deletions(-)
|
||||
|
||||
diff --git a/build/cmake/lib/webview/CMakeLists.txt b/build/cmake/lib/webview/CMakeLists.txt
|
||||
index 085381d785..62146abc04 100644
|
||||
--- a/build/cmake/lib/webview/CMakeLists.txt
|
||||
+++ b/build/cmake/lib/webview/CMakeLists.txt
|
||||
@@ -46,9 +46,9 @@ if(APPLE)
|
||||
elseif(WXMSW)
|
||||
if(wxUSE_WEBVIEW_EDGE)
|
||||
# Update the following variables if updating WebView2 SDK
|
||||
- set(WEBVIEW2_VERSION "1.0.705.50")
|
||||
+ set(WEBVIEW2_VERSION "1.0.1418.22")
|
||||
set(WEBVIEW2_URL "https://www.nuget.org/api/v2/package/Microsoft.Web.WebView2/${WEBVIEW2_VERSION}")
|
||||
- set(WEBVIEW2_SHA256 "6a34bb553e18cfac7297b4031f3eac2558e439f8d16a45945c22945ac404105d")
|
||||
+ set(WEBVIEW2_SHA256 "51d2ef56196e2a9d768a6843385bcb9c6baf9ed34b2603ddb074fb4995543a99")
|
||||
|
||||
set(WEBVIEW2_DEFAULT_PACKAGE_DIR "${CMAKE_BINARY_DIR}/packages/Microsoft.Web.WebView2.${WEBVIEW2_VERSION}")
|
||||
|
||||
diff --git a/include/wx/fontutil.h b/include/wx/fontutil.h
|
||||
index 30529db8ce..e6a12366d5 100644
|
||||
--- a/include/wx/fontutil.h
|
||||
+++ b/include/wx/fontutil.h
|
||||
@@ -294,7 +294,11 @@ public:
|
||||
wxFontEncoding GetEncoding() const;
|
||||
|
||||
void SetPointSize(int pointsize);
|
||||
- void SetFractionalPointSize(double pointsize);
|
||||
+ void SetFractionalPointSize(double pointsize
|
||||
+#if defined(__WXMSW__)
|
||||
+ , const wxWindow *window = nullptr
|
||||
+#endif
|
||||
+ );
|
||||
void SetPixelSize(const wxSize& pixelSize);
|
||||
void SetStyle(wxFontStyle style);
|
||||
void SetNumericWeight(int weight);
|
||||
@@ -307,12 +311,19 @@ public:
|
||||
|
||||
// Helper used in many ports: use the normal font size if the input is
|
||||
// negative, as we handle -1 as meaning this for compatibility.
|
||||
- void SetSizeOrDefault(double size)
|
||||
+ void SetSizeOrDefault(double size
|
||||
+#if defined(__WXMSW__)
|
||||
+ , const wxWindow *window = nullptr
|
||||
+#endif
|
||||
+ )
|
||||
{
|
||||
SetFractionalPointSize
|
||||
(
|
||||
size < 0 ? wxNORMAL_FONT->GetFractionalPointSize()
|
||||
: size
|
||||
+#if defined(__WXMSW__)
|
||||
+ ,window
|
||||
+#endif
|
||||
);
|
||||
}
|
||||
|
||||
diff --git a/include/wx/gdicmn.h b/include/wx/gdicmn.h
|
||||
index 2f5f8ee99f..39e9317d40 100644
|
||||
--- a/include/wx/gdicmn.h
|
||||
+++ b/include/wx/gdicmn.h
|
||||
@@ -38,6 +38,7 @@ class WXDLLIMPEXP_FWD_CORE wxRegion;
|
||||
class WXDLLIMPEXP_FWD_BASE wxString;
|
||||
class WXDLLIMPEXP_FWD_CORE wxIconBundle;
|
||||
class WXDLLIMPEXP_FWD_CORE wxPoint;
|
||||
+class WXDLLIMPEXP_FWD_CORE wxWindow;
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// constants
|
||||
@@ -1106,7 +1107,9 @@ extern int WXDLLIMPEXP_CORE wxDisplayDepth();
|
||||
|
||||
// get the display size
|
||||
extern void WXDLLIMPEXP_CORE wxDisplaySize(int *width, int *height);
|
||||
+extern void WXDLLIMPEXP_CORE wxDisplaySize(const wxWindow *window, int *width, int *height);
|
||||
extern wxSize WXDLLIMPEXP_CORE wxGetDisplaySize();
|
||||
+extern wxSize WXDLLIMPEXP_CORE wxGetDisplaySize(const wxWindow *window);
|
||||
extern void WXDLLIMPEXP_CORE wxDisplaySizeMM(int *width, int *height);
|
||||
extern wxSize WXDLLIMPEXP_CORE wxGetDisplaySizeMM();
|
||||
extern wxSize WXDLLIMPEXP_CORE wxGetDisplayPPI();
|
||||
diff --git a/include/wx/generic/grid.h b/include/wx/generic/grid.h
|
||||
index 1bd58bbf04..903cb81319 100644
|
||||
--- a/include/wx/generic/grid.h
|
||||
+++ b/include/wx/generic/grid.h
|
||||
@@ -3029,9 +3029,11 @@ private:
|
||||
// Update the width/height of the column/row being drag-resized.
|
||||
// Should be only called when m_dragRowOrCol != -1, i.e. dragging is
|
||||
// actually in progress.
|
||||
+ //BBS: add cursor mode for DoGridDragResize's paremeters
|
||||
void DoGridDragResize(const wxPoint& position,
|
||||
const wxGridOperations& oper,
|
||||
- wxGridWindow* gridWindow);
|
||||
+ wxGridWindow* gridWindow,
|
||||
+ CursorMode mode);
|
||||
|
||||
// process different clicks on grid cells
|
||||
void DoGridCellLeftDown(wxMouseEvent& event,
|
||||
diff --git a/include/wx/msw/font.h b/include/wx/msw/font.h
|
||||
index 0f9768b44e..094d774918 100644
|
||||
--- a/include/wx/msw/font.h
|
||||
+++ b/include/wx/msw/font.h
|
||||
@@ -23,7 +23,7 @@ public:
|
||||
// ctors and such
|
||||
wxFont() { }
|
||||
|
||||
- wxFont(const wxFontInfo& info);
|
||||
+ wxFont(const wxFontInfo& info, const wxWindow *window = nullptr);
|
||||
|
||||
wxFont(int size,
|
||||
wxFontFamily family,
|
||||
diff --git a/include/wx/msw/tooltip.h b/include/wx/msw/tooltip.h
|
||||
index 4c3be08cec..96fb378d01 100644
|
||||
--- a/include/wx/msw/tooltip.h
|
||||
+++ b/include/wx/msw/tooltip.h
|
||||
@@ -91,10 +91,10 @@ private:
|
||||
// the one and only one tooltip control we use - never access it directly
|
||||
// but use GetToolTipCtrl() which will create it when needed
|
||||
static WXHWND ms_hwndTT;
|
||||
-
|
||||
+public:
|
||||
// create the tooltip ctrl if it doesn't exist yet and return its HWND
|
||||
static WXHWND GetToolTipCtrl();
|
||||
-
|
||||
+private:
|
||||
// to be used in wxModule for deleting tooltip ctrl window when exiting mainloop
|
||||
static void DeleteToolTipCtrl();
|
||||
|
||||
diff --git a/include/wx/osx/app.h b/include/wx/osx/app.h
|
||||
index 317a0ca96f..58014ec1d4 100644
|
||||
--- a/include/wx/osx/app.h
|
||||
+++ b/include/wx/osx/app.h
|
||||
@@ -161,7 +161,7 @@ private:
|
||||
|
||||
public:
|
||||
bool OSXInitWasCalled() { return m_inited; }
|
||||
- void OSXStoreOpenFiles(const wxArrayString &files ) { m_openFiles = files ; }
|
||||
+ virtual void OSXStoreOpenFiles(const wxArrayString &files ) { m_openFiles = files ; }
|
||||
void OSXStorePrintFiles(const wxArrayString &files ) { m_printFiles = files ; }
|
||||
void OSXStoreOpenURL(const wxString &url ) { m_getURL = url ; }
|
||||
#endif
|
||||
diff --git a/src/common/combocmn.cpp b/src/common/combocmn.cpp
|
||||
index 80408c6677..aa07caebdc 100644
|
||||
--- a/src/common/combocmn.cpp
|
||||
+++ b/src/common/combocmn.cpp
|
||||
@@ -2061,6 +2061,9 @@ void wxComboCtrlBase::ShowPopup()
|
||||
|
||||
SetFocus();
|
||||
|
||||
+ //int displayIdx = wxDisplay::GetFromWindow(this);
|
||||
+ //wxRect displayRect = wxDisplay(displayIdx != wxNOT_FOUND ? displayIdx : 0u).GetGeometry();
|
||||
+
|
||||
// Space above and below
|
||||
int screenHeight;
|
||||
wxPoint scrPos;
|
||||
@@ -2183,9 +2186,13 @@ void wxComboCtrlBase::ShowPopup()
|
||||
|
||||
int showFlags = CanDeferShow;
|
||||
|
||||
- if ( spaceBelow < szp.y )
|
||||
+ int anchorSideVertical = m_anchorSide & (wxUP | wxDOWN);
|
||||
+ if (// Pop up as asked for by the library user.
|
||||
+ (anchorSideVertical & wxUP) ||
|
||||
+ // Automatic: Pop up if it does not fit down.
|
||||
+ (anchorSideVertical == 0 && spaceBelow < szp.y ))
|
||||
{
|
||||
- popupY = scrPos.y - szp.y;
|
||||
+ popupY = scrPos.y - szp.y + displayRect.GetTop();
|
||||
showFlags |= ShowAbove;
|
||||
}
|
||||
|
||||
diff --git a/src/common/datavcmn.cpp b/src/common/datavcmn.cpp
|
||||
index 0a1e43ad51..6c492aedab 100644
|
||||
--- a/src/common/datavcmn.cpp
|
||||
+++ b/src/common/datavcmn.cpp
|
||||
@@ -1334,7 +1334,11 @@ wxDataViewItem wxDataViewCtrlBase::GetSelection() const
|
||||
|
||||
wxDataViewItemArray selections;
|
||||
GetSelections(selections);
|
||||
- return selections[0];
|
||||
+ // BBS
|
||||
+ if (!selections.empty())
|
||||
+ return selections[0];
|
||||
+ else
|
||||
+ return wxDataViewItem(0);
|
||||
}
|
||||
|
||||
namespace
|
||||
diff --git a/src/common/dcbufcmn.cpp b/src/common/dcbufcmn.cpp
|
||||
index 9b1c1f3159..ef5865ed4b 100644
|
||||
--- a/src/common/dcbufcmn.cpp
|
||||
+++ b/src/common/dcbufcmn.cpp
|
||||
@@ -83,9 +83,15 @@ private:
|
||||
const double scale = dc ? dc->GetContentScaleFactor() : 1.0;
|
||||
wxBitmap* const buffer = new wxBitmap;
|
||||
|
||||
+#if __WXMSW__
|
||||
+ // we must always return a valid bitmap but creating a bitmap of
|
||||
+ // size 0 would fail, so create a 1*1 bitmap in this case
|
||||
+ buffer->Create(wxMax(w, 1), wxMax(h, 1), 24);
|
||||
+#else
|
||||
// we must always return a valid bitmap but creating a bitmap of
|
||||
// size 0 would fail, so create a 1*1 bitmap in this case
|
||||
buffer->CreateWithDIPSize(wxMax(w, 1), wxMax(h, 1), scale);
|
||||
+#endif
|
||||
|
||||
return buffer;
|
||||
}
|
||||
diff --git a/src/common/gdicmn.cpp b/src/common/gdicmn.cpp
|
||||
index db8a01f961..162c1ce2dc 100644
|
||||
--- a/src/common/gdicmn.cpp
|
||||
+++ b/src/common/gdicmn.cpp
|
||||
@@ -863,11 +863,25 @@ void wxDisplaySize(int *width, int *height)
|
||||
*height = size.y;
|
||||
}
|
||||
|
||||
+void wxDisplaySize(const wxWindow *window, int *width, int *height)
|
||||
+{
|
||||
+ const wxSize size = wxGetDisplaySize(window);
|
||||
+ if ( width )
|
||||
+ *width = size.x;
|
||||
+ if ( height )
|
||||
+ *height = size.y;
|
||||
+}
|
||||
+
|
||||
wxSize wxGetDisplaySize()
|
||||
{
|
||||
return wxDisplay().GetGeometry().GetSize();
|
||||
}
|
||||
|
||||
+wxSize wxGetDisplaySize(const wxWindow *window)
|
||||
+{
|
||||
+ return window ? wxDisplay(window).GetGeometry().GetSize() : wxDisplay().GetGeometry().GetSize();
|
||||
+}
|
||||
+
|
||||
void wxClientDisplayRect(int *x, int *y, int *width, int *height)
|
||||
{
|
||||
const wxRect rect = wxGetClientDisplayRect();
|
||||
diff --git a/src/common/image.cpp b/src/common/image.cpp
|
||||
index 19fe34ec91..a449b60930 100644
|
||||
--- a/src/common/image.cpp
|
||||
+++ b/src/common/image.cpp
|
||||
@@ -390,11 +390,11 @@ wxImage wxImage::ShrinkBy( int xFactor , int yFactor ) const
|
||||
unsigned char red = pixel[0] ;
|
||||
unsigned char green = pixel[1] ;
|
||||
unsigned char blue = pixel[2] ;
|
||||
- unsigned char alpha = 255 ;
|
||||
- if ( source_alpha )
|
||||
- alpha = *(source_alpha + y_offset + x * xFactor + x1) ;
|
||||
if ( !hasMask || red != maskRed || green != maskGreen || blue != maskBlue )
|
||||
{
|
||||
+ unsigned char alpha = 255 ;
|
||||
+ if ( source_alpha )
|
||||
+ alpha = *(source_alpha + y_offset + x * xFactor + x1) ;
|
||||
if ( alpha > 0 )
|
||||
{
|
||||
avgRed += red ;
|
||||
diff --git a/src/generic/grid.cpp b/src/generic/grid.cpp
|
||||
index ed3d988994..d71cda122d 100644
|
||||
--- a/src/generic/grid.cpp
|
||||
+++ b/src/generic/grid.cpp
|
||||
@@ -4068,7 +4068,8 @@ void wxGrid::ProcessRowColLabelMouseEvent( const wxGridOperations &oper, wxMouse
|
||||
{
|
||||
if ( m_cursorMode == oper.GetCursorModeResize() )
|
||||
{
|
||||
- DoGridDragResize(event.GetPosition(), oper, gridWindow);
|
||||
+ //BBS: add cursor mode for DoGridDragResize's paremeters
|
||||
+ DoGridDragResize(event.GetPosition(), oper, gridWindow, m_cursorMode);
|
||||
}
|
||||
else if ( m_cursorMode == oper.GetCursorModeSelect() && line >=0 )
|
||||
{
|
||||
@@ -4691,12 +4692,14 @@ bool wxGrid::DoGridDragEvent(wxMouseEvent& event,
|
||||
|
||||
case WXGRID_CURSOR_RESIZE_ROW:
|
||||
if ( m_dragRowOrCol != -1 )
|
||||
- DoGridDragResize(event.GetPosition(), wxGridRowOperations(), gridWindow);
|
||||
+ //BBS: add cursor mode for DoGridDragResize's paremeters
|
||||
+ DoGridDragResize(event.GetPosition(), wxGridRowOperations(), gridWindow, WXGRID_CURSOR_RESIZE_ROW);
|
||||
break;
|
||||
|
||||
case WXGRID_CURSOR_RESIZE_COL:
|
||||
if ( m_dragRowOrCol != -1 )
|
||||
- DoGridDragResize(event.GetPosition(), wxGridColumnOperations(), gridWindow);
|
||||
+ //BBS: add cursor mode for DoGridDragResize's paremeters
|
||||
+ DoGridDragResize(event.GetPosition(), wxGridColumnOperations(), gridWindow, WXGRID_CURSOR_RESIZE_COL);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -4791,6 +4794,8 @@ wxGrid::DoGridCellLeftDown(wxMouseEvent& event,
|
||||
case wxGridSelectCells:
|
||||
case wxGridSelectRowsOrColumns:
|
||||
// nothing to do in these cases
|
||||
+ //BBS: select this cell when first click
|
||||
+ m_selection->SelectBlock(coords.GetRow(), coords.GetCol(), coords.GetRow(), coords.GetCol(), event);
|
||||
break;
|
||||
|
||||
case wxGridSelectRows:
|
||||
@@ -5049,9 +5054,11 @@ void wxGrid::ProcessGridCellMouseEvent(wxMouseEvent& event, wxGridWindow *eventG
|
||||
}
|
||||
}
|
||||
|
||||
+//BBS: add cursor mode for DoGridDragResize's paremeters
|
||||
void wxGrid::DoGridDragResize(const wxPoint& position,
|
||||
const wxGridOperations& oper,
|
||||
- wxGridWindow* gridWindow)
|
||||
+ wxGridWindow* gridWindow,
|
||||
+ CursorMode mode)
|
||||
{
|
||||
wxCHECK_RET( m_dragRowOrCol != -1,
|
||||
"shouldn't be called when not drag resizing" );
|
||||
@@ -5064,10 +5071,28 @@ void wxGrid::DoGridDragResize(const wxPoint& position,
|
||||
// orthogonal direction.
|
||||
const int linePos = oper.Dual().Select(logicalPos);
|
||||
|
||||
- const int lineStart = oper.GetLineStartPos(this, m_dragRowOrCol);
|
||||
- oper.SetLineSize(this, m_dragRowOrCol,
|
||||
+ //BBS: add logic for resize multiplexed cols
|
||||
+ if (mode == WXGRID_CURSOR_RESIZE_COL) {
|
||||
+ int col_to_resize = m_dragRowOrCol;
|
||||
+ int num_rows, num_cols;
|
||||
+ this->GetCellSize(0, m_dragRowOrCol, &num_rows, &num_cols);
|
||||
+ if (num_cols < 1)
|
||||
+ col_to_resize = m_dragRowOrCol - 1;
|
||||
+
|
||||
+ const int lineEnd = oper.GetLineEndPos(this, m_dragRowOrCol);
|
||||
+ const int lineSize = oper.GetLineSize(this, col_to_resize);
|
||||
+ int size = linePos - lineEnd + lineSize;
|
||||
+ oper.SetLineSize(this, col_to_resize,
|
||||
+ wxMax(size,
|
||||
+ oper.GetMinimalLineSize(this, col_to_resize)));
|
||||
+ }
|
||||
+ else {
|
||||
+ const int lineStart = oper.GetLineStartPos(this, m_dragRowOrCol);
|
||||
+
|
||||
+ oper.SetLineSize(this, m_dragRowOrCol,
|
||||
wxMax(linePos - lineStart,
|
||||
oper.GetMinimalLineSize(this, m_dragRowOrCol)));
|
||||
+ }
|
||||
|
||||
// TODO: generate RESIZING event, see #10754, if the size has changed.
|
||||
}
|
||||
@@ -5090,7 +5115,8 @@ wxPoint wxGrid::GetPositionForResizeEvent(int width) const
|
||||
|
||||
void wxGrid::DoEndDragResizeRow(const wxMouseEvent& event, wxGridWindow* gridWindow)
|
||||
{
|
||||
- DoGridDragResize(event.GetPosition(), wxGridRowOperations(), gridWindow);
|
||||
+ //BBS: add cursor mode for DoGridDragResize's paremeters
|
||||
+ DoGridDragResize(event.GetPosition(), wxGridRowOperations(), gridWindow, WXGRID_CURSOR_RESIZE_ROW);
|
||||
|
||||
SendGridSizeEvent(wxEVT_GRID_ROW_SIZE, m_dragRowOrCol, event);
|
||||
|
||||
@@ -5099,7 +5125,8 @@ void wxGrid::DoEndDragResizeRow(const wxMouseEvent& event, wxGridWindow* gridWin
|
||||
|
||||
void wxGrid::DoEndDragResizeCol(const wxMouseEvent& event, wxGridWindow* gridWindow)
|
||||
{
|
||||
- DoGridDragResize(event.GetPosition(), wxGridColumnOperations(), gridWindow);
|
||||
+ //BBS: add cursor mode for DoGridDragResize's paremeters
|
||||
+ DoGridDragResize(event.GetPosition(), wxGridColumnOperations(), gridWindow, WXGRID_CURSOR_RESIZE_COL);
|
||||
|
||||
SendGridSizeEvent(wxEVT_GRID_COL_SIZE, m_dragRowOrCol, event);
|
||||
|
||||
@@ -5113,9 +5140,10 @@ void wxGrid::DoHeaderStartDragResizeCol(int col)
|
||||
|
||||
void wxGrid::DoHeaderDragResizeCol(int width)
|
||||
{
|
||||
+ //BBS: add cursor mode for DoGridDragResize's paremeters
|
||||
DoGridDragResize(GetPositionForResizeEvent(width),
|
||||
wxGridColumnOperations(),
|
||||
- m_gridWin);
|
||||
+ m_gridWin, WXGRID_CURSOR_RESIZE_COL);
|
||||
}
|
||||
|
||||
void wxGrid::DoHeaderEndDragResizeCol(int width)
|
||||
@@ -6013,6 +6041,10 @@ void wxGrid::OnKeyDown( wxKeyEvent& event )
|
||||
DisableCellEditControl();
|
||||
|
||||
MoveCursorDown( event.ShiftDown() );
|
||||
+ //BBS: select this cell when first click
|
||||
+ m_selection->SelectBlock(m_currentCellCoords.GetRow(), m_currentCellCoords.GetCol(),
|
||||
+ m_currentCellCoords.GetRow(), m_currentCellCoords.GetCol(),
|
||||
+ event);
|
||||
}
|
||||
break;
|
||||
|
||||
diff --git a/src/msw/bmpcbox.cpp b/src/msw/bmpcbox.cpp
|
||||
index 011bd4f534..17e7f18740 100644
|
||||
--- a/src/msw/bmpcbox.cpp
|
||||
+++ b/src/msw/bmpcbox.cpp
|
||||
@@ -156,13 +156,20 @@ void wxBitmapComboBox::RecreateControl()
|
||||
|
||||
wxComboBox::DoClear();
|
||||
|
||||
- HWND hwnd = GetHwnd();
|
||||
+ WNDPROC wndproc_edit = nullptr;
|
||||
+ WinStruct<COMBOBOXINFO> combobox_info;
|
||||
+ HWND hwnd = GetHwnd();
|
||||
+if (::GetComboBoxInfo(hwnd, &combobox_info))
|
||||
+ wndproc_edit = (WNDPROC)wxGetWindowProc(combobox_info.hwndItem);
|
||||
DissociateHandle();
|
||||
::DestroyWindow(hwnd);
|
||||
|
||||
if ( !MSWCreateControl(wxT("COMBOBOX"), wxEmptyString, pos, size) )
|
||||
return;
|
||||
|
||||
+if (::GetComboBoxInfo(GetHwnd(), &combobox_info))
|
||||
+ wxSetWindowProc(combobox_info.hwndItem, wndproc_edit);
|
||||
+
|
||||
// initialize the controls contents
|
||||
for ( i = 0; i < numItems; i++ )
|
||||
{
|
||||
diff --git a/src/msw/font.cpp b/src/msw/font.cpp
|
||||
index 434876939c..91d4603018 100644
|
||||
--- a/src/msw/font.cpp
|
||||
+++ b/src/msw/font.cpp
|
||||
@@ -54,7 +54,7 @@ static const int PITCH_MASK = FIXED_PITCH | VARIABLE_PITCH;
|
||||
class WXDLLEXPORT wxFontRefData: public wxGDIRefData
|
||||
{
|
||||
public:
|
||||
- wxFontRefData(const wxFontInfo& info = wxFontInfo());
|
||||
+ wxFontRefData(const wxFontInfo& info = wxFontInfo(), const wxWindow* window = nullptr);
|
||||
|
||||
wxFontRefData(const wxNativeFontInfo& info, WXHFONT hFont = 0)
|
||||
{
|
||||
@@ -324,7 +324,7 @@ protected:
|
||||
// wxFontRefData
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
-wxFontRefData::wxFontRefData(const wxFontInfo& info)
|
||||
+wxFontRefData::wxFontRefData(const wxFontInfo& info, const wxWindow *window)
|
||||
{
|
||||
m_hFont = NULL;
|
||||
|
||||
@@ -335,7 +335,7 @@ wxFontRefData::wxFontRefData(const wxFontInfo& info)
|
||||
}
|
||||
else
|
||||
{
|
||||
- m_nativeFontInfo.SetSizeOrDefault(info.GetFractionalPointSize());
|
||||
+ m_nativeFontInfo.SetSizeOrDefault(info.GetFractionalPointSize(), window);
|
||||
}
|
||||
|
||||
SetStyle(info.GetStyle());
|
||||
@@ -518,12 +518,12 @@ wxFontEncoding wxNativeFontInfo::GetEncoding() const
|
||||
return wxGetFontEncFromCharSet(lf.lfCharSet);
|
||||
}
|
||||
|
||||
-void wxNativeFontInfo::SetFractionalPointSize(double pointSizeNew)
|
||||
+void wxNativeFontInfo::SetFractionalPointSize(double pointSizeNew, const wxWindow *window)
|
||||
{
|
||||
// We don't have the correct DPI to use here, so use that of the
|
||||
// primary screen and rely on WXAdjustToPPI() changing it later if
|
||||
// necessary.
|
||||
- const int ppi = ::GetDeviceCaps(ScreenHDC(), LOGPIXELSY);
|
||||
+ const int ppi = window ? window->GetDPI().GetY() : ::GetDeviceCaps(ScreenHDC(), LOGPIXELSY);
|
||||
lf.lfHeight = GetLogFontHeightAtPPI(pointSizeNew, ppi);
|
||||
|
||||
pointSize = pointSizeNew;
|
||||
@@ -812,9 +812,9 @@ wxFont::wxFont(const wxString& fontdesc)
|
||||
(void)Create(info);
|
||||
}
|
||||
|
||||
-wxFont::wxFont(const wxFontInfo& info)
|
||||
+wxFont::wxFont(const wxFontInfo& info, const wxWindow *window)
|
||||
{
|
||||
- m_refData = new wxFontRefData(info);
|
||||
+ m_refData = new wxFontRefData(info, window);
|
||||
}
|
||||
|
||||
bool wxFont::Create(const wxNativeFontInfo& info, WXHFONT hFont)
|
||||
diff --git a/src/msw/menuitem.cpp b/src/msw/menuitem.cpp
|
||||
index 0bd017a36a..3b98bf1678 100644
|
||||
--- a/src/msw/menuitem.cpp
|
||||
+++ b/src/msw/menuitem.cpp
|
||||
@@ -368,6 +368,8 @@ void MenuDrawData::Init(wxWindow const* window)
|
||||
// native menu uses small top margin for separator
|
||||
if ( SeparatorMargin.cyTopHeight >= 2 )
|
||||
SeparatorMargin.cyTopHeight -= 2;
|
||||
+
|
||||
+ SeparatorSize.cy = 0;
|
||||
}
|
||||
else
|
||||
#endif // wxUSE_UXTHEME
|
||||
diff --git a/src/msw/window.cpp b/src/msw/window.cpp
|
||||
index c529a4fa3b..7e547c64df 100644
|
||||
--- a/src/msw/window.cpp
|
||||
+++ b/src/msw/window.cpp
|
||||
@@ -4809,33 +4809,49 @@ static wxSize GetWindowDPI(HWND hwnd)
|
||||
}
|
||||
|
||||
/*extern*/
|
||||
-int wxGetSystemMetrics(int nIndex, const wxWindow* window)
|
||||
+int wxGetSystemMetrics(int nIndex, const wxWindow* win)
|
||||
{
|
||||
#if wxUSE_DYNLIB_CLASS
|
||||
- if ( !window )
|
||||
- window = wxApp::GetMainTopWindow();
|
||||
+ const wxWindow* window = (!win && wxTheApp) ? wxTheApp->GetTopWindow() : win;
|
||||
|
||||
- if ( window )
|
||||
+ if (window)
|
||||
{
|
||||
- typedef int (WINAPI * GetSystemMetricsForDpi_t)(int nIndex, UINT dpi);
|
||||
- static GetSystemMetricsForDpi_t s_pfnGetSystemMetricsForDpi = NULL;
|
||||
- static bool s_initDone = false;
|
||||
-
|
||||
- if ( !s_initDone )
|
||||
- {
|
||||
- wxLoadedDLL dllUser32("user32.dll");
|
||||
- wxDL_INIT_FUNC(s_pfn, GetSystemMetricsForDpi, dllUser32);
|
||||
- s_initDone = true;
|
||||
+#if 1
|
||||
+ if (window->GetHWND() && (nIndex == SM_CXSCREEN || nIndex == SM_CYSCREEN)) {
|
||||
+ HDC hdc = GetDC(window->GetHWND());
|
||||
+#if 0
|
||||
+ double dim = GetDeviceCaps(hdc, nIndex == SM_CXSCREEN ? HORZRES : VERTRES);
|
||||
+ ReleaseDC(window->GetHWND(), hdc);
|
||||
+ wxSize dpi = window->GetDPI();
|
||||
+ dim *= 96.0 / (nIndex == SM_CXSCREEN ? dpi.x : dpi.y);
|
||||
+ return int(dim + 0.5);
|
||||
+#else
|
||||
+ return int(GetDeviceCaps(hdc, nIndex == SM_CXSCREEN ? HORZRES : VERTRES));
|
||||
+#endif
|
||||
}
|
||||
-
|
||||
- if ( s_pfnGetSystemMetricsForDpi )
|
||||
+ else
|
||||
+#endif
|
||||
{
|
||||
- const int dpi = window->GetDPI().y;
|
||||
- return s_pfnGetSystemMetricsForDpi(nIndex, (UINT)dpi);
|
||||
+ typedef int (WINAPI * GetSystemMetricsForDpi_t)(int nIndex, UINT dpi);
|
||||
+ static GetSystemMetricsForDpi_t s_pfnGetSystemMetricsForDpi = NULL;
|
||||
+ static bool s_initDone = false;
|
||||
+
|
||||
+ if ( !s_initDone )
|
||||
+ {
|
||||
+ wxLoadedDLL dllUser32("user32.dll");
|
||||
+ wxDL_INIT_FUNC(s_pfn, GetSystemMetricsForDpi, dllUser32);
|
||||
+ s_initDone = true;
|
||||
+ }
|
||||
+
|
||||
+ if ( s_pfnGetSystemMetricsForDpi )
|
||||
+ {
|
||||
+ const int dpi = window->GetDPI().y;
|
||||
+ return s_pfnGetSystemMetricsForDpi(nIndex, (UINT)dpi);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
#else
|
||||
- wxUnusedVar(window);
|
||||
+ wxUnusedVar(win);
|
||||
#endif // wxUSE_DYNLIB_CLASS
|
||||
|
||||
return ::GetSystemMetrics(nIndex);
|
||||
diff --git a/src/osx/cocoa/dataview.mm b/src/osx/cocoa/dataview.mm
|
||||
index f188e61089..7b867002d1 100644
|
||||
--- a/src/osx/cocoa/dataview.mm
|
||||
+++ b/src/osx/cocoa/dataview.mm
|
||||
@@ -1604,6 +1604,15 @@ outlineView:(NSOutlineView*)outlineView
|
||||
}
|
||||
}
|
||||
|
||||
+//FIXME Vojtech: This is a workaround to get at least the "mouse move" events at the wxDataViewControl,
|
||||
+// so we can show the tooltips. The "mouse move" events are being send only if the wxDataViewControl
|
||||
+// has focus, which is a limitation of wxWidgets. We may grab focus on "mouse entry" though.
|
||||
+- (void)mouseMoved:(NSEvent *)event
|
||||
+{
|
||||
+if (! implementation->DoHandleMouseEvent(event))
|
||||
+ [super mouseMoved:event];
|
||||
+}
|
||||
+
|
||||
//
|
||||
// contextual menus
|
||||
//
|
||||
@@ -2006,7 +2015,8 @@ void wxCocoaDataViewControl::keyEvent(WX_NSEvent event, WXWidget slf, void *_cmd
|
||||
if ( !dvc->GetEventHandler()->ProcessEvent(eventDV) )
|
||||
wxWidgetCocoaImpl::keyEvent(event, slf, _cmd);
|
||||
}
|
||||
- else
|
||||
+ //FIXME Vojtech's hack to get the accelerators assigned to the wxDataViewControl working.
|
||||
+ else if (! DoHandleKeyEvent(event))
|
||||
{
|
||||
wxWidgetCocoaImpl::keyEvent(event, slf, _cmd); // all other keys
|
||||
}
|
||||
@@ -2540,12 +2550,22 @@ void wxCocoaDataViewControl::DoSetIndent(int indent)
|
||||
|
||||
void wxCocoaDataViewControl::HitTest(const wxPoint& point, wxDataViewItem& item, wxDataViewColumn*& columnPtr) const
|
||||
{
|
||||
- NSPoint const nativePoint = wxToNSPoint((NSScrollView*) GetWXWidget(),point);
|
||||
+ NSTableHeaderView *headerView = [m_OutlineView headerView];
|
||||
+ if (headerView && point.y < headerView.visibleRect.size.height) {
|
||||
+ // The point is inside the header area.
|
||||
+ columnPtr = NULL;
|
||||
+ item = wxDataViewItem();
|
||||
+ return;
|
||||
+ }
|
||||
+ // Convert from the window coordinates to the virtual scrolled view coordinates.
|
||||
+ NSScrollView *scrollView = [m_OutlineView enclosingScrollView];
|
||||
+ const NSRect &visibleRect = scrollView.contentView.visibleRect;
|
||||
+ NSPoint const nativePoint = wxToNSPoint((NSScrollView*) GetWXWidget(),
|
||||
+ wxPoint(point.x + visibleRect.origin.x, point.y + visibleRect.origin.y));
|
||||
|
||||
int indexColumn;
|
||||
int indexRow;
|
||||
|
||||
-
|
||||
indexColumn = [m_OutlineView columnAtPoint:nativePoint];
|
||||
indexRow = [m_OutlineView rowAtPoint: nativePoint];
|
||||
if ((indexColumn >= 0) && (indexRow >= 0))
|
||||
diff --git a/src/osx/cocoa/settings.mm b/src/osx/cocoa/settings.mm
|
||||
index c819deeb0c..dc3c3b0b53 100644
|
||||
--- a/src/osx/cocoa/settings.mm
|
||||
+++ b/src/osx/cocoa/settings.mm
|
||||
@@ -222,7 +222,7 @@ wxFont wxSystemSettingsNative::GetFont(wxSystemFont index)
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// Get a system metric, e.g. scrollbar size
|
||||
-int wxSystemSettingsNative::GetMetric(wxSystemMetric index, const wxWindow* WXUNUSED(win))
|
||||
+int wxSystemSettingsNative::GetMetric(wxSystemMetric index, const wxWindow* win)
|
||||
{
|
||||
int value;
|
||||
|
||||
@@ -257,11 +257,11 @@ int wxSystemSettingsNative::GetMetric(wxSystemMetric index, const wxWindow* WXUN
|
||||
// TODO case wxSYS_WINDOWMIN_Y:
|
||||
|
||||
case wxSYS_SCREEN_X:
|
||||
- wxDisplaySize(&value, NULL);
|
||||
+ wxDisplaySize(win, &value, NULL);
|
||||
return value;
|
||||
|
||||
case wxSYS_SCREEN_Y:
|
||||
- wxDisplaySize(NULL, &value);
|
||||
+ wxDisplaySize(win, NULL, &value);
|
||||
return value;
|
||||
|
||||
// TODO case wxSYS_FRAMESIZE_X:
|
||||
diff --git a/src/osx/cocoa/window.mm b/src/osx/cocoa/window.mm
|
||||
index 635ea286d4..42ae67e27a 100644
|
||||
--- a/src/osx/cocoa/window.mm
|
||||
+++ b/src/osx/cocoa/window.mm
|
||||
@@ -191,6 +191,9 @@ NSRect wxOSXGetFrameForControl( wxWindowMac* window , const wxPoint& pos , const
|
||||
- (BOOL)isEnabled;
|
||||
- (void)setEnabled:(BOOL)flag;
|
||||
|
||||
+- (BOOL)clipsToBounds;
|
||||
+- (void)setClipsToBounds:(BOOL)clipsToBounds;
|
||||
+
|
||||
- (void)setImage:(NSImage *)image;
|
||||
- (void)setControlSize:(NSControlSize)size;
|
||||
|
||||
@@ -2559,6 +2562,7 @@ wxWidgetImpl( peer, flags )
|
||||
if ( m_osxView )
|
||||
CFRetain(m_osxView);
|
||||
[m_osxView release];
|
||||
+ m_osxView.clipsToBounds = YES;
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
2.42.0.windows.2
|
||||
|
||||
743
deps/wxWidgets/0001-wx-3.1.5-patch-for-Orca.patch
vendored
|
|
@ -1,743 +0,0 @@
|
|||
From 5e82980ed1762338794d06b3f9f22fa10e050622 Mon Sep 17 00:00:00 2001
|
||||
From: SoftFever <softfeverever@gmail.com>
|
||||
Date: Sat, 23 Dec 2023 20:08:41 +0800
|
||||
Subject: [PATCH] wx 3.1.5 patch for Orca
|
||||
|
||||
---
|
||||
build/cmake/init.cmake | 4 ++
|
||||
build/cmake/lib/webview/CMakeLists.txt | 4 +-
|
||||
include/wx/fontutil.h | 15 +++++++-
|
||||
include/wx/gdicmn.h | 3 ++
|
||||
include/wx/generic/grid.h | 4 +-
|
||||
include/wx/msw/font.h | 2 +-
|
||||
include/wx/msw/tooltip.h | 4 +-
|
||||
include/wx/osx/app.h | 2 +-
|
||||
src/common/combocmn.cpp | 13 +++++--
|
||||
src/common/datavcmn.cpp | 6 ++-
|
||||
src/common/dcbufcmn.cpp | 8 +++-
|
||||
src/common/gdicmn.cpp | 14 +++++++
|
||||
src/common/image.cpp | 6 +--
|
||||
src/common/intl.cpp | 7 ++++
|
||||
src/generic/grid.cpp | 53 +++++++++++++++++++++-----
|
||||
src/msw/bmpcbox.cpp | 9 ++++-
|
||||
src/msw/font.cpp | 14 +++----
|
||||
src/msw/menuitem.cpp | 2 +
|
||||
src/msw/window.cpp | 52 ++++++++++++++++---------
|
||||
src/osx/cocoa/dataview.mm | 26 +++++++++++--
|
||||
src/osx/cocoa/settings.mm | 6 +--
|
||||
src/osx/cocoa/window.mm | 4 ++
|
||||
22 files changed, 199 insertions(+), 59 deletions(-)
|
||||
|
||||
diff --git a/build/cmake/init.cmake b/build/cmake/init.cmake
|
||||
index 0bc4f934b9..479431a69c 100644
|
||||
--- a/build/cmake/init.cmake
|
||||
+++ b/build/cmake/init.cmake
|
||||
@@ -413,7 +413,11 @@ if(wxUSE_GUI)
|
||||
else()
|
||||
find_package(OpenGL)
|
||||
if(WXGTK3 AND OpenGL_EGL_FOUND AND wxUSE_GLCANVAS_EGL)
|
||||
+ if(UNIX AND NOT APPLE)
|
||||
+ set(OPENGL_LIBRARIES OpenGL EGL)
|
||||
+ else()
|
||||
set(OPENGL_LIBRARIES OpenGL::OpenGL OpenGL::EGL)
|
||||
+ endif()
|
||||
find_package(WAYLANDEGL)
|
||||
if(WAYLANDEGL_FOUND AND wxHAVE_GDK_WAYLAND)
|
||||
list(APPEND OPENGL_LIBRARIES ${WAYLANDEGL_LIBRARIES})
|
||||
diff --git a/build/cmake/lib/webview/CMakeLists.txt b/build/cmake/lib/webview/CMakeLists.txt
|
||||
index cc3298ff33..aa103ae474 100644
|
||||
--- a/build/cmake/lib/webview/CMakeLists.txt
|
||||
+++ b/build/cmake/lib/webview/CMakeLists.txt
|
||||
@@ -56,9 +56,9 @@ if(APPLE)
|
||||
elseif(WXMSW)
|
||||
if(wxUSE_WEBVIEW_EDGE)
|
||||
# Update the following variables if updating WebView2 SDK
|
||||
- set(WEBVIEW2_VERSION "1.0.705.50")
|
||||
+ set(WEBVIEW2_VERSION "1.0.1418.22")
|
||||
set(WEBVIEW2_URL "https://www.nuget.org/api/v2/package/Microsoft.Web.WebView2/${WEBVIEW2_VERSION}")
|
||||
- set(WEBVIEW2_SHA256 "6a34bb553e18cfac7297b4031f3eac2558e439f8d16a45945c22945ac404105d")
|
||||
+ set(WEBVIEW2_SHA256 "51d2ef56196e2a9d768a6843385bcb9c6baf9ed34b2603ddb074fb4995543a99")
|
||||
|
||||
set(WEBVIEW2_DEFAULT_PACKAGE_DIR "${CMAKE_BINARY_DIR}/packages/Microsoft.Web.WebView2.${WEBVIEW2_VERSION}")
|
||||
|
||||
diff --git a/include/wx/fontutil.h b/include/wx/fontutil.h
|
||||
index 09ad8c8ef3..c228e167d7 100644
|
||||
--- a/include/wx/fontutil.h
|
||||
+++ b/include/wx/fontutil.h
|
||||
@@ -294,7 +294,11 @@ public:
|
||||
wxFontEncoding GetEncoding() const;
|
||||
|
||||
void SetPointSize(int pointsize);
|
||||
- void SetFractionalPointSize(double pointsize);
|
||||
+ void SetFractionalPointSize(double pointsize
|
||||
+#if defined(__WXMSW__)
|
||||
+ , const wxWindow *window = nullptr
|
||||
+#endif
|
||||
+ );
|
||||
void SetPixelSize(const wxSize& pixelSize);
|
||||
void SetStyle(wxFontStyle style);
|
||||
void SetNumericWeight(int weight);
|
||||
@@ -307,12 +311,19 @@ public:
|
||||
|
||||
// Helper used in many ports: use the normal font size if the input is
|
||||
// negative, as we handle -1 as meaning this for compatibility.
|
||||
- void SetSizeOrDefault(double size)
|
||||
+ void SetSizeOrDefault(double size
|
||||
+#if defined(__WXMSW__)
|
||||
+ , const wxWindow *window = nullptr
|
||||
+#endif
|
||||
+ )
|
||||
{
|
||||
SetFractionalPointSize
|
||||
(
|
||||
size < 0 ? wxNORMAL_FONT->GetFractionalPointSize()
|
||||
: size
|
||||
+#if defined(__WXMSW__)
|
||||
+ ,window
|
||||
+#endif
|
||||
);
|
||||
}
|
||||
|
||||
diff --git a/include/wx/gdicmn.h b/include/wx/gdicmn.h
|
||||
index e29a77627c..dc48cf9451 100644
|
||||
--- a/include/wx/gdicmn.h
|
||||
+++ b/include/wx/gdicmn.h
|
||||
@@ -38,6 +38,7 @@ class WXDLLIMPEXP_FWD_CORE wxRegion;
|
||||
class WXDLLIMPEXP_FWD_BASE wxString;
|
||||
class WXDLLIMPEXP_FWD_CORE wxIconBundle;
|
||||
class WXDLLIMPEXP_FWD_CORE wxPoint;
|
||||
+class WXDLLIMPEXP_FWD_CORE wxWindow;
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// constants
|
||||
@@ -1092,7 +1093,9 @@ extern int WXDLLIMPEXP_CORE wxDisplayDepth();
|
||||
|
||||
// get the display size
|
||||
extern void WXDLLIMPEXP_CORE wxDisplaySize(int *width, int *height);
|
||||
+extern void WXDLLIMPEXP_CORE wxDisplaySize(const wxWindow *window, int *width, int *height);
|
||||
extern wxSize WXDLLIMPEXP_CORE wxGetDisplaySize();
|
||||
+extern wxSize WXDLLIMPEXP_CORE wxGetDisplaySize(const wxWindow *window);
|
||||
extern void WXDLLIMPEXP_CORE wxDisplaySizeMM(int *width, int *height);
|
||||
extern wxSize WXDLLIMPEXP_CORE wxGetDisplaySizeMM();
|
||||
extern wxSize WXDLLIMPEXP_CORE wxGetDisplayPPI();
|
||||
diff --git a/include/wx/generic/grid.h b/include/wx/generic/grid.h
|
||||
index d7a3890764..e4dee51d5a 100644
|
||||
--- a/include/wx/generic/grid.h
|
||||
+++ b/include/wx/generic/grid.h
|
||||
@@ -2951,9 +2951,11 @@ private:
|
||||
wxGridWindow* gridWindow);
|
||||
|
||||
// Update the width/height of the column/row being drag-resized.
|
||||
+ //BBS: add cursor mode for DoGridDragResize's paremeters
|
||||
void DoGridDragResize(const wxPoint& position,
|
||||
const wxGridOperations& oper,
|
||||
- wxGridWindow* gridWindow);
|
||||
+ wxGridWindow* gridWindow,
|
||||
+ CursorMode mode);
|
||||
|
||||
// process different clicks on grid cells
|
||||
void DoGridCellLeftDown(wxMouseEvent& event,
|
||||
diff --git a/include/wx/msw/font.h b/include/wx/msw/font.h
|
||||
index 0f9768b44e..094d774918 100644
|
||||
--- a/include/wx/msw/font.h
|
||||
+++ b/include/wx/msw/font.h
|
||||
@@ -23,7 +23,7 @@ public:
|
||||
// ctors and such
|
||||
wxFont() { }
|
||||
|
||||
- wxFont(const wxFontInfo& info);
|
||||
+ wxFont(const wxFontInfo& info, const wxWindow *window = nullptr);
|
||||
|
||||
wxFont(int size,
|
||||
wxFontFamily family,
|
||||
diff --git a/include/wx/msw/tooltip.h b/include/wx/msw/tooltip.h
|
||||
index 4c3be08cec..96fb378d01 100644
|
||||
--- a/include/wx/msw/tooltip.h
|
||||
+++ b/include/wx/msw/tooltip.h
|
||||
@@ -91,10 +91,10 @@ private:
|
||||
// the one and only one tooltip control we use - never access it directly
|
||||
// but use GetToolTipCtrl() which will create it when needed
|
||||
static WXHWND ms_hwndTT;
|
||||
-
|
||||
+public:
|
||||
// create the tooltip ctrl if it doesn't exist yet and return its HWND
|
||||
static WXHWND GetToolTipCtrl();
|
||||
-
|
||||
+private:
|
||||
// to be used in wxModule for deleting tooltip ctrl window when exiting mainloop
|
||||
static void DeleteToolTipCtrl();
|
||||
|
||||
diff --git a/include/wx/osx/app.h b/include/wx/osx/app.h
|
||||
index 317a0ca96f..58014ec1d4 100644
|
||||
--- a/include/wx/osx/app.h
|
||||
+++ b/include/wx/osx/app.h
|
||||
@@ -161,7 +161,7 @@ private:
|
||||
|
||||
public:
|
||||
bool OSXInitWasCalled() { return m_inited; }
|
||||
- void OSXStoreOpenFiles(const wxArrayString &files ) { m_openFiles = files ; }
|
||||
+ virtual void OSXStoreOpenFiles(const wxArrayString &files ) { m_openFiles = files ; }
|
||||
void OSXStorePrintFiles(const wxArrayString &files ) { m_printFiles = files ; }
|
||||
void OSXStoreOpenURL(const wxString &url ) { m_getURL = url ; }
|
||||
#endif
|
||||
diff --git a/src/common/combocmn.cpp b/src/common/combocmn.cpp
|
||||
index b61aac35bf..7cfc97d2f8 100644
|
||||
--- a/src/common/combocmn.cpp
|
||||
+++ b/src/common/combocmn.cpp
|
||||
@@ -2141,7 +2141,7 @@ void wxComboCtrlBase::CreatePopup()
|
||||
#if !USES_GENERICTLW
|
||||
m_winPopup = new wxComboPopupWindowBase2( this, wxNO_BORDER );
|
||||
#else
|
||||
- int tlwFlags = wxNO_BORDER;
|
||||
+ int tlwFlags = wxNO_BORDER | wxSTAY_ON_TOP;
|
||||
#ifdef wxCC_GENERIC_TLW_IS_FRAME
|
||||
tlwFlags |= wxFRAME_NO_TASKBAR;
|
||||
#endif
|
||||
@@ -2285,6 +2285,9 @@ void wxComboCtrlBase::ShowPopup()
|
||||
|
||||
SetFocus();
|
||||
|
||||
+ //int displayIdx = wxDisplay::GetFromWindow(this);
|
||||
+ //wxRect displayRect = wxDisplay(displayIdx != wxNOT_FOUND ? displayIdx : 0u).GetGeometry();
|
||||
+
|
||||
// Space above and below
|
||||
int screenHeight;
|
||||
wxPoint scrPos;
|
||||
@@ -2407,9 +2410,13 @@ void wxComboCtrlBase::ShowPopup()
|
||||
|
||||
int showFlags = CanDeferShow;
|
||||
|
||||
- if ( spaceBelow < szp.y )
|
||||
+ int anchorSideVertical = m_anchorSide & (wxUP | wxDOWN);
|
||||
+ if (// Pop up as asked for by the library user.
|
||||
+ (anchorSideVertical & wxUP) ||
|
||||
+ // Automatic: Pop up if it does not fit down.
|
||||
+ (anchorSideVertical == 0 && spaceBelow < szp.y ))
|
||||
{
|
||||
- popupY = scrPos.y - szp.y;
|
||||
+ popupY = scrPos.y - szp.y + displayRect.GetTop();
|
||||
showFlags |= ShowAbove;
|
||||
}
|
||||
|
||||
diff --git a/src/common/datavcmn.cpp b/src/common/datavcmn.cpp
|
||||
index 1f5fd4d66b..14ea2f8ef1 100644
|
||||
--- a/src/common/datavcmn.cpp
|
||||
+++ b/src/common/datavcmn.cpp
|
||||
@@ -1322,7 +1322,11 @@ wxDataViewItem wxDataViewCtrlBase::GetSelection() const
|
||||
|
||||
wxDataViewItemArray selections;
|
||||
GetSelections(selections);
|
||||
- return selections[0];
|
||||
+ // BBS
|
||||
+ if (!selections.empty())
|
||||
+ return selections[0];
|
||||
+ else
|
||||
+ return wxDataViewItem(0);
|
||||
}
|
||||
|
||||
namespace
|
||||
diff --git a/src/common/dcbufcmn.cpp b/src/common/dcbufcmn.cpp
|
||||
index 74958fce10..59844f4526 100644
|
||||
--- a/src/common/dcbufcmn.cpp
|
||||
+++ b/src/common/dcbufcmn.cpp
|
||||
@@ -82,9 +82,15 @@ private:
|
||||
const double scale = dc ? dc->GetContentScaleFactor() : 1.0;
|
||||
wxBitmap* const buffer = new wxBitmap;
|
||||
|
||||
+#if __WXMSW__
|
||||
// we must always return a valid bitmap but creating a bitmap of
|
||||
// size 0 would fail, so create a 1*1 bitmap in this case
|
||||
- buffer->CreateScaled(wxMax(w, 1), wxMax(h, 1), -1, scale);
|
||||
+ buffer->Create(wxMax(w, 1), wxMax(h, 1), 24);
|
||||
+#else
|
||||
+ // we must always return a valid bitmap but creating a bitmap of
|
||||
+ // size 0 would fail, so create a 1*1 bitmap in this case
|
||||
+ buffer->CreateScaled(wxMax(w, 1), wxMax(h, 1), -1, scale);
|
||||
+#endif
|
||||
|
||||
return buffer;
|
||||
}
|
||||
diff --git a/src/common/gdicmn.cpp b/src/common/gdicmn.cpp
|
||||
index 20442bbc73..bc2c35bee6 100644
|
||||
--- a/src/common/gdicmn.cpp
|
||||
+++ b/src/common/gdicmn.cpp
|
||||
@@ -863,11 +863,25 @@ void wxDisplaySize(int *width, int *height)
|
||||
*height = size.y;
|
||||
}
|
||||
|
||||
+void wxDisplaySize(const wxWindow *window, int *width, int *height)
|
||||
+{
|
||||
+ const wxSize size = wxGetDisplaySize(window);
|
||||
+ if ( width )
|
||||
+ *width = size.x;
|
||||
+ if ( height )
|
||||
+ *height = size.y;
|
||||
+}
|
||||
+
|
||||
wxSize wxGetDisplaySize()
|
||||
{
|
||||
return wxDisplay().GetGeometry().GetSize();
|
||||
}
|
||||
|
||||
+wxSize wxGetDisplaySize(const wxWindow *window)
|
||||
+{
|
||||
+ return window ? wxDisplay(window).GetGeometry().GetSize() : wxDisplay().GetGeometry().GetSize();
|
||||
+}
|
||||
+
|
||||
void wxClientDisplayRect(int *x, int *y, int *width, int *height)
|
||||
{
|
||||
const wxRect rect = wxGetClientDisplayRect();
|
||||
diff --git a/src/common/image.cpp b/src/common/image.cpp
|
||||
index 78fe5b82a3..46db8722ce 100644
|
||||
--- a/src/common/image.cpp
|
||||
+++ b/src/common/image.cpp
|
||||
@@ -383,11 +383,11 @@ wxImage wxImage::ShrinkBy( int xFactor , int yFactor ) const
|
||||
unsigned char red = pixel[0] ;
|
||||
unsigned char green = pixel[1] ;
|
||||
unsigned char blue = pixel[2] ;
|
||||
- unsigned char alpha = 255 ;
|
||||
- if ( source_alpha )
|
||||
- alpha = *(source_alpha + y_offset + x * xFactor + x1) ;
|
||||
if ( !hasMask || red != maskRed || green != maskGreen || blue != maskBlue )
|
||||
{
|
||||
+ unsigned char alpha = 255 ;
|
||||
+ if ( source_alpha )
|
||||
+ alpha = *(source_alpha + y_offset + x * xFactor + x1) ;
|
||||
if ( alpha > 0 )
|
||||
{
|
||||
avgRed += red ;
|
||||
diff --git a/src/common/intl.cpp b/src/common/intl.cpp
|
||||
index 0b0d8798f4..294f542b1f 100644
|
||||
--- a/src/common/intl.cpp
|
||||
+++ b/src/common/intl.cpp
|
||||
@@ -1628,6 +1628,12 @@ GetInfoFromLCID(LCID lcid,
|
||||
{
|
||||
str = buf;
|
||||
|
||||
+//FIXME Vojtech: We forcefully set the locales for a decimal point to "C", but this
|
||||
+// is not possible for the Win32 locales, therefore there is a discrepancy.
|
||||
+// It looks like we live with the discrepancy for at least half a year, so we will
|
||||
+// suppress the assert until we fix Slic3r to properly switch to "C" locales just
|
||||
+// for file import / export.
|
||||
+#if 0
|
||||
// As we get our decimal point separator from Win32 and not the
|
||||
// CRT there is a possibility of mismatch between them and this
|
||||
// can easily happen if the user code called setlocale()
|
||||
@@ -1641,6 +1647,7 @@ GetInfoFromLCID(LCID lcid,
|
||||
"Decimal separator mismatch -- did you use setlocale()?"
|
||||
"If so, use wxLocale to change the locale instead."
|
||||
);
|
||||
+#endif
|
||||
}
|
||||
break;
|
||||
|
||||
diff --git a/src/generic/grid.cpp b/src/generic/grid.cpp
|
||||
index 41fd4524cf..f4a15cb839 100644
|
||||
--- a/src/generic/grid.cpp
|
||||
+++ b/src/generic/grid.cpp
|
||||
@@ -3824,7 +3824,8 @@ void wxGrid::ProcessRowLabelMouseEvent( wxMouseEvent& event, wxGridRowLabelWindo
|
||||
{
|
||||
case WXGRID_CURSOR_RESIZE_ROW:
|
||||
{
|
||||
- DoGridDragResize(event.GetPosition(), wxGridRowOperations(), gridWindow);
|
||||
+ //BBS: add cursor mode for DoGridDragResize's paremeters
|
||||
+ DoGridDragResize(event.GetPosition(), wxGridRowOperations(), gridWindow, WXGRID_CURSOR_RESIZE_ROW);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -4166,7 +4167,8 @@ void wxGrid::ProcessColLabelMouseEvent( wxMouseEvent& event, wxGridColLabelWindo
|
||||
switch ( m_cursorMode )
|
||||
{
|
||||
case WXGRID_CURSOR_RESIZE_COL:
|
||||
- DoGridDragResize(event.GetPosition(), wxGridColumnOperations(), gridWindow);
|
||||
+ //BBS: add cursor mode for DoGridDragResize's paremeters
|
||||
+ DoGridDragResize(event.GetPosition(), wxGridColumnOperations(), gridWindow, WXGRID_CURSOR_RESIZE_COL);
|
||||
break;
|
||||
|
||||
case WXGRID_CURSOR_SELECT_COL:
|
||||
@@ -4708,11 +4710,13 @@ bool wxGrid::DoGridDragEvent(wxMouseEvent& event,
|
||||
return DoGridCellDrag(event, coords, isFirstDrag);
|
||||
|
||||
case WXGRID_CURSOR_RESIZE_ROW:
|
||||
- DoGridDragResize(event.GetPosition(), wxGridRowOperations(), gridWindow);
|
||||
+ //BBS: add cursor mode for DoGridDragResize's paremeters
|
||||
+ DoGridDragResize(event.GetPosition(), wxGridRowOperations(), gridWindow, WXGRID_CURSOR_RESIZE_ROW);
|
||||
break;
|
||||
|
||||
case WXGRID_CURSOR_RESIZE_COL:
|
||||
- DoGridDragResize(event.GetPosition(), wxGridColumnOperations(), gridWindow);
|
||||
+ //BBS: add cursor mode for DoGridDragResize's paremeters
|
||||
+ DoGridDragResize(event.GetPosition(), wxGridColumnOperations(), gridWindow, WXGRID_CURSOR_RESIZE_COL);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -4803,6 +4807,8 @@ wxGrid::DoGridCellLeftDown(wxMouseEvent& event,
|
||||
case wxGridSelectCells:
|
||||
case wxGridSelectRowsOrColumns:
|
||||
// nothing to do in these cases
|
||||
+ //BBS: select this cell when first click
|
||||
+ m_selection->SelectBlock(coords.GetRow(), coords.GetCol(), coords.GetRow(), coords.GetCol(), event);
|
||||
break;
|
||||
|
||||
case wxGridSelectRows:
|
||||
@@ -5044,9 +5050,11 @@ void wxGrid::ProcessGridCellMouseEvent(wxMouseEvent& event, wxGridWindow *eventG
|
||||
}
|
||||
}
|
||||
|
||||
+//BBS: add cursor mode for DoGridDragResize's paremeters
|
||||
void wxGrid::DoGridDragResize(const wxPoint& position,
|
||||
const wxGridOperations& oper,
|
||||
- wxGridWindow* gridWindow)
|
||||
+ wxGridWindow* gridWindow,
|
||||
+ CursorMode mode)
|
||||
{
|
||||
// Get the logical position from the physical one we're passed.
|
||||
const wxPoint
|
||||
@@ -5056,10 +5064,28 @@ void wxGrid::DoGridDragResize(const wxPoint& position,
|
||||
// orthogonal direction.
|
||||
const int linePos = oper.Dual().Select(logicalPos);
|
||||
|
||||
- const int lineStart = oper.GetLineStartPos(this, m_dragRowOrCol);
|
||||
- oper.SetLineSize(this, m_dragRowOrCol,
|
||||
+ //BBS: add logic for resize multiplexed cols
|
||||
+ if (mode == WXGRID_CURSOR_RESIZE_COL) {
|
||||
+ int col_to_resize = m_dragRowOrCol;
|
||||
+ int num_rows, num_cols;
|
||||
+ this->GetCellSize(0, m_dragRowOrCol, &num_rows, &num_cols);
|
||||
+ if (num_cols < 1)
|
||||
+ col_to_resize = m_dragRowOrCol - 1;
|
||||
+
|
||||
+ const int lineEnd = oper.GetLineEndPos(this, m_dragRowOrCol);
|
||||
+ const int lineSize = oper.GetLineSize(this, col_to_resize);
|
||||
+ int size = linePos - lineEnd + lineSize;
|
||||
+ oper.SetLineSize(this, col_to_resize,
|
||||
+ wxMax(size,
|
||||
+ oper.GetMinimalLineSize(this, col_to_resize)));
|
||||
+ }
|
||||
+ else {
|
||||
+ const int lineStart = oper.GetLineStartPos(this, m_dragRowOrCol);
|
||||
+
|
||||
+ oper.SetLineSize(this, m_dragRowOrCol,
|
||||
wxMax(linePos - lineStart,
|
||||
oper.GetMinimalLineSize(this, m_dragRowOrCol)));
|
||||
+ }
|
||||
|
||||
// TODO: generate RESIZING event, see #10754, if the size has changed.
|
||||
}
|
||||
@@ -5082,7 +5108,8 @@ wxPoint wxGrid::GetPositionForResizeEvent(int width) const
|
||||
|
||||
void wxGrid::DoEndDragResizeRow(const wxMouseEvent& event, wxGridWindow* gridWindow)
|
||||
{
|
||||
- DoGridDragResize(event.GetPosition(), wxGridRowOperations(), gridWindow);
|
||||
+ //BBS: add cursor mode for DoGridDragResize's paremeters
|
||||
+ DoGridDragResize(event.GetPosition(), wxGridRowOperations(), gridWindow, WXGRID_CURSOR_RESIZE_ROW);
|
||||
|
||||
SendGridSizeEvent(wxEVT_GRID_ROW_SIZE, m_dragRowOrCol, -1, event);
|
||||
|
||||
@@ -5091,7 +5118,8 @@ void wxGrid::DoEndDragResizeRow(const wxMouseEvent& event, wxGridWindow* gridWin
|
||||
|
||||
void wxGrid::DoEndDragResizeCol(const wxMouseEvent& event, wxGridWindow* gridWindow)
|
||||
{
|
||||
- DoGridDragResize(event.GetPosition(), wxGridColumnOperations(), gridWindow);
|
||||
+ //BBS: add cursor mode for DoGridDragResize's paremeters
|
||||
+ DoGridDragResize(event.GetPosition(), wxGridColumnOperations(), gridWindow, WXGRID_CURSOR_RESIZE_COL);
|
||||
|
||||
SendGridSizeEvent(wxEVT_GRID_COL_SIZE, -1, m_dragRowOrCol, event);
|
||||
|
||||
@@ -5105,9 +5133,10 @@ void wxGrid::DoHeaderStartDragResizeCol(int col)
|
||||
|
||||
void wxGrid::DoHeaderDragResizeCol(int width)
|
||||
{
|
||||
+ //BBS: add cursor mode for DoGridDragResize's paremeters
|
||||
DoGridDragResize(GetPositionForResizeEvent(width),
|
||||
wxGridColumnOperations(),
|
||||
- m_gridWin);
|
||||
+ m_gridWin, WXGRID_CURSOR_RESIZE_COL);
|
||||
}
|
||||
|
||||
void wxGrid::DoHeaderEndDragResizeCol(int width)
|
||||
@@ -5891,6 +5920,10 @@ void wxGrid::OnKeyDown( wxKeyEvent& event )
|
||||
DisableCellEditControl();
|
||||
|
||||
MoveCursorDown( event.ShiftDown() );
|
||||
+ //BBS: select this cell when first click
|
||||
+ m_selection->SelectBlock(m_currentCellCoords.GetRow(), m_currentCellCoords.GetCol(),
|
||||
+ m_currentCellCoords.GetRow(), m_currentCellCoords.GetCol(),
|
||||
+ event);
|
||||
}
|
||||
break;
|
||||
|
||||
diff --git a/src/msw/bmpcbox.cpp b/src/msw/bmpcbox.cpp
|
||||
index 0a2d167ad7..0aeba45ea9 100644
|
||||
--- a/src/msw/bmpcbox.cpp
|
||||
+++ b/src/msw/bmpcbox.cpp
|
||||
@@ -156,13 +156,20 @@ void wxBitmapComboBox::RecreateControl()
|
||||
|
||||
wxComboBox::DoClear();
|
||||
|
||||
- HWND hwnd = GetHwnd();
|
||||
+ WNDPROC wndproc_edit = nullptr;
|
||||
+ WinStruct<COMBOBOXINFO> combobox_info;
|
||||
+ HWND hwnd = GetHwnd();
|
||||
+if (::GetComboBoxInfo(hwnd, &combobox_info))
|
||||
+ wndproc_edit = (WNDPROC)wxGetWindowProc(combobox_info.hwndItem);
|
||||
DissociateHandle();
|
||||
::DestroyWindow(hwnd);
|
||||
|
||||
if ( !MSWCreateControl(wxT("COMBOBOX"), wxEmptyString, pos, size) )
|
||||
return;
|
||||
|
||||
+if (::GetComboBoxInfo(GetHwnd(), &combobox_info))
|
||||
+ wxSetWindowProc(combobox_info.hwndItem, wndproc_edit);
|
||||
+
|
||||
// initialize the controls contents
|
||||
for ( i = 0; i < numItems; i++ )
|
||||
{
|
||||
diff --git a/src/msw/font.cpp b/src/msw/font.cpp
|
||||
index 0bd240d79f..d38b1b00f5 100644
|
||||
--- a/src/msw/font.cpp
|
||||
+++ b/src/msw/font.cpp
|
||||
@@ -54,7 +54,7 @@ static const int PITCH_MASK = FIXED_PITCH | VARIABLE_PITCH;
|
||||
class WXDLLEXPORT wxFontRefData: public wxGDIRefData
|
||||
{
|
||||
public:
|
||||
- wxFontRefData(const wxFontInfo& info = wxFontInfo());
|
||||
+ wxFontRefData(const wxFontInfo& info = wxFontInfo(), const wxWindow* window = nullptr);
|
||||
|
||||
wxFontRefData(const wxNativeFontInfo& info, WXHFONT hFont = 0)
|
||||
{
|
||||
@@ -324,7 +324,7 @@ protected:
|
||||
// wxFontRefData
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
-wxFontRefData::wxFontRefData(const wxFontInfo& info)
|
||||
+wxFontRefData::wxFontRefData(const wxFontInfo& info, const wxWindow *window)
|
||||
{
|
||||
m_hFont = NULL;
|
||||
|
||||
@@ -335,7 +335,7 @@ wxFontRefData::wxFontRefData(const wxFontInfo& info)
|
||||
}
|
||||
else
|
||||
{
|
||||
- m_nativeFontInfo.SetSizeOrDefault(info.GetFractionalPointSize());
|
||||
+ m_nativeFontInfo.SetSizeOrDefault(info.GetFractionalPointSize(), window);
|
||||
}
|
||||
|
||||
SetStyle(info.GetStyle());
|
||||
@@ -518,12 +518,12 @@ wxFontEncoding wxNativeFontInfo::GetEncoding() const
|
||||
return wxGetFontEncFromCharSet(lf.lfCharSet);
|
||||
}
|
||||
|
||||
-void wxNativeFontInfo::SetFractionalPointSize(double pointSizeNew)
|
||||
+void wxNativeFontInfo::SetFractionalPointSize(double pointSizeNew, const wxWindow *window)
|
||||
{
|
||||
// We don't have the correct DPI to use here, so use that of the
|
||||
// primary screen and rely on WXAdjustToPPI() changing it later if
|
||||
// necessary.
|
||||
- const int ppi = ::GetDeviceCaps(ScreenHDC(), LOGPIXELSY);
|
||||
+ const int ppi = window ? window->GetDPI().GetY() : ::GetDeviceCaps(ScreenHDC(), LOGPIXELSY);
|
||||
lf.lfHeight = GetLogFontHeightAtPPI(pointSizeNew, ppi);
|
||||
|
||||
pointSize = pointSizeNew;
|
||||
@@ -812,9 +812,9 @@ wxFont::wxFont(const wxString& fontdesc)
|
||||
(void)Create(info);
|
||||
}
|
||||
|
||||
-wxFont::wxFont(const wxFontInfo& info)
|
||||
+wxFont::wxFont(const wxFontInfo& info, const wxWindow *window)
|
||||
{
|
||||
- m_refData = new wxFontRefData(info);
|
||||
+ m_refData = new wxFontRefData(info, window);
|
||||
}
|
||||
|
||||
bool wxFont::Create(const wxNativeFontInfo& info, WXHFONT hFont)
|
||||
diff --git a/src/msw/menuitem.cpp b/src/msw/menuitem.cpp
|
||||
index 9bb397d472..30af7154a7 100644
|
||||
--- a/src/msw/menuitem.cpp
|
||||
+++ b/src/msw/menuitem.cpp
|
||||
@@ -368,6 +368,8 @@ void MenuDrawData::Init(wxWindow const* window)
|
||||
// native menu uses small top margin for separator
|
||||
if ( SeparatorMargin.cyTopHeight >= 2 )
|
||||
SeparatorMargin.cyTopHeight -= 2;
|
||||
+
|
||||
+ SeparatorSize.cy = 0;
|
||||
}
|
||||
else
|
||||
#endif // wxUSE_UXTHEME
|
||||
diff --git a/src/msw/window.cpp b/src/msw/window.cpp
|
||||
index eadc2f5700..f64fea4446 100644
|
||||
--- a/src/msw/window.cpp
|
||||
+++ b/src/msw/window.cpp
|
||||
@@ -4773,33 +4773,49 @@ static wxSize GetWindowDPI(HWND hwnd)
|
||||
}
|
||||
|
||||
/*extern*/
|
||||
-int wxGetSystemMetrics(int nIndex, const wxWindow* window)
|
||||
+int wxGetSystemMetrics(int nIndex, const wxWindow* win)
|
||||
{
|
||||
#if wxUSE_DYNLIB_CLASS
|
||||
- if ( !window )
|
||||
- window = wxApp::GetMainTopWindow();
|
||||
+ const wxWindow* window = (!win && wxTheApp) ? wxTheApp->GetTopWindow() : win;
|
||||
|
||||
- if ( window )
|
||||
+ if (window)
|
||||
{
|
||||
- typedef int (WINAPI * GetSystemMetricsForDpi_t)(int nIndex, UINT dpi);
|
||||
- static GetSystemMetricsForDpi_t s_pfnGetSystemMetricsForDpi = NULL;
|
||||
- static bool s_initDone = false;
|
||||
-
|
||||
- if ( !s_initDone )
|
||||
- {
|
||||
- wxLoadedDLL dllUser32("user32.dll");
|
||||
- wxDL_INIT_FUNC(s_pfn, GetSystemMetricsForDpi, dllUser32);
|
||||
- s_initDone = true;
|
||||
+#if 1
|
||||
+ if (window->GetHWND() && (nIndex == SM_CXSCREEN || nIndex == SM_CYSCREEN)) {
|
||||
+ HDC hdc = GetDC(window->GetHWND());
|
||||
+#if 0
|
||||
+ double dim = GetDeviceCaps(hdc, nIndex == SM_CXSCREEN ? HORZRES : VERTRES);
|
||||
+ ReleaseDC(window->GetHWND(), hdc);
|
||||
+ wxSize dpi = window->GetDPI();
|
||||
+ dim *= 96.0 / (nIndex == SM_CXSCREEN ? dpi.x : dpi.y);
|
||||
+ return int(dim + 0.5);
|
||||
+#else
|
||||
+ return int(GetDeviceCaps(hdc, nIndex == SM_CXSCREEN ? HORZRES : VERTRES));
|
||||
+#endif
|
||||
}
|
||||
-
|
||||
- if ( s_pfnGetSystemMetricsForDpi )
|
||||
+ else
|
||||
+#endif
|
||||
{
|
||||
- const int dpi = window->GetDPI().y;
|
||||
- return s_pfnGetSystemMetricsForDpi(nIndex, (UINT)dpi);
|
||||
+ typedef int (WINAPI * GetSystemMetricsForDpi_t)(int nIndex, UINT dpi);
|
||||
+ static GetSystemMetricsForDpi_t s_pfnGetSystemMetricsForDpi = NULL;
|
||||
+ static bool s_initDone = false;
|
||||
+
|
||||
+ if ( !s_initDone )
|
||||
+ {
|
||||
+ wxLoadedDLL dllUser32("user32.dll");
|
||||
+ wxDL_INIT_FUNC(s_pfn, GetSystemMetricsForDpi, dllUser32);
|
||||
+ s_initDone = true;
|
||||
+ }
|
||||
+
|
||||
+ if ( s_pfnGetSystemMetricsForDpi )
|
||||
+ {
|
||||
+ const int dpi = window->GetDPI().y;
|
||||
+ return s_pfnGetSystemMetricsForDpi(nIndex, (UINT)dpi);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
#else
|
||||
- wxUnusedVar(window);
|
||||
+ wxUnusedVar(win);
|
||||
#endif // wxUSE_DYNLIB_CLASS
|
||||
|
||||
return ::GetSystemMetrics(nIndex);
|
||||
diff --git a/src/osx/cocoa/dataview.mm b/src/osx/cocoa/dataview.mm
|
||||
index 6ff0cc3088..4943f3ea38 100644
|
||||
--- a/src/osx/cocoa/dataview.mm
|
||||
+++ b/src/osx/cocoa/dataview.mm
|
||||
@@ -1734,12 +1734,22 @@ outlineView:(NSOutlineView*)outlineView
|
||||
if ( !dvc->GetEventHandler()->ProcessEvent(eventDV) )
|
||||
[super keyDown:event];
|
||||
}
|
||||
- else
|
||||
+ //FIXME Vojtech's hack to get the accelerators assigned to the wxDataViewControl working.
|
||||
+ else if (! implementation->DoHandleKeyEvent(event))
|
||||
{
|
||||
[super keyDown:event]; // all other keys
|
||||
}
|
||||
}
|
||||
|
||||
+//FIXME Vojtech: This is a workaround to get at least the "mouse move" events at the wxDataViewControl,
|
||||
+// so we can show the tooltips. The "mouse move" events are being send only if the wxDataViewControl
|
||||
+// has focus, which is a limitation of wxWidgets. We may grab focus on "mouse entry" though.
|
||||
+- (void)mouseMoved:(NSEvent *)event
|
||||
+{
|
||||
+if (! implementation->DoHandleMouseEvent(event))
|
||||
+ [super mouseMoved:event];
|
||||
+}
|
||||
+
|
||||
//
|
||||
// contextual menus
|
||||
//
|
||||
@@ -2672,12 +2682,22 @@ void wxCocoaDataViewControl::DoSetIndent(int indent)
|
||||
|
||||
void wxCocoaDataViewControl::HitTest(const wxPoint& point, wxDataViewItem& item, wxDataViewColumn*& columnPtr) const
|
||||
{
|
||||
- NSPoint const nativePoint = wxToNSPoint((NSScrollView*) GetWXWidget(),point);
|
||||
+ NSTableHeaderView *headerView = [m_OutlineView headerView];
|
||||
+ if (headerView && point.y < headerView.visibleRect.size.height) {
|
||||
+ // The point is inside the header area.
|
||||
+ columnPtr = NULL;
|
||||
+ item = wxDataViewItem();
|
||||
+ return;
|
||||
+ }
|
||||
+ // Convert from the window coordinates to the virtual scrolled view coordinates.
|
||||
+ NSScrollView *scrollView = [m_OutlineView enclosingScrollView];
|
||||
+ const NSRect &visibleRect = scrollView.contentView.visibleRect;
|
||||
+ NSPoint const nativePoint = wxToNSPoint((NSScrollView*) GetWXWidget(),
|
||||
+ wxPoint(point.x + visibleRect.origin.x, point.y + visibleRect.origin.y));
|
||||
|
||||
int indexColumn;
|
||||
int indexRow;
|
||||
|
||||
-
|
||||
indexColumn = [m_OutlineView columnAtPoint:nativePoint];
|
||||
indexRow = [m_OutlineView rowAtPoint: nativePoint];
|
||||
if ((indexColumn >= 0) && (indexRow >= 0))
|
||||
diff --git a/src/osx/cocoa/settings.mm b/src/osx/cocoa/settings.mm
|
||||
index de5f52860c..a9581174a4 100644
|
||||
--- a/src/osx/cocoa/settings.mm
|
||||
+++ b/src/osx/cocoa/settings.mm
|
||||
@@ -224,7 +224,7 @@ wxFont wxSystemSettingsNative::GetFont(wxSystemFont index)
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// Get a system metric, e.g. scrollbar size
|
||||
-int wxSystemSettingsNative::GetMetric(wxSystemMetric index, const wxWindow* WXUNUSED(win))
|
||||
+int wxSystemSettingsNative::GetMetric(wxSystemMetric index, const wxWindow* win)
|
||||
{
|
||||
int value;
|
||||
|
||||
@@ -259,11 +259,11 @@ int wxSystemSettingsNative::GetMetric(wxSystemMetric index, const wxWindow* WXUN
|
||||
// TODO case wxSYS_WINDOWMIN_Y:
|
||||
|
||||
case wxSYS_SCREEN_X:
|
||||
- wxDisplaySize(&value, NULL);
|
||||
+ wxDisplaySize(win, &value, NULL);
|
||||
return value;
|
||||
|
||||
case wxSYS_SCREEN_Y:
|
||||
- wxDisplaySize(NULL, &value);
|
||||
+ wxDisplaySize(win, NULL, &value);
|
||||
return value;
|
||||
|
||||
// TODO case wxSYS_FRAMESIZE_X:
|
||||
diff --git a/src/osx/cocoa/window.mm b/src/osx/cocoa/window.mm
|
||||
index b322e582c5..79de567333 100644
|
||||
--- a/src/osx/cocoa/window.mm
|
||||
+++ b/src/osx/cocoa/window.mm
|
||||
@@ -190,6 +190,9 @@ NSRect wxOSXGetFrameForControl( wxWindowMac* window , const wxPoint& pos , const
|
||||
- (BOOL)isEnabled;
|
||||
- (void)setEnabled:(BOOL)flag;
|
||||
|
||||
+- (BOOL)clipsToBounds;
|
||||
+- (void)setClipsToBounds:(BOOL)clipsToBounds;
|
||||
+
|
||||
- (void)setImage:(NSImage *)image;
|
||||
- (void)setControlSize:(NSControlSize)size;
|
||||
|
||||
@@ -2505,6 +2508,7 @@ wxWidgetImpl( peer, flags )
|
||||
if ( m_osxView )
|
||||
CFRetain(m_osxView);
|
||||
[m_osxView release];
|
||||
+ m_osxView.clipsToBounds = YES;
|
||||
}
|
||||
|
||||
|
||||
--
|
||||
2.41.0.windows.2
|
||||
|
||||
40
deps/wxWidgets/wxWidgets.cmake
vendored
|
|
@ -1,6 +1,3 @@
|
|||
set(_wx_version 3.1.5)
|
||||
set(_wx_git_tag v${_wx_version})
|
||||
|
||||
set(_wx_toolkit "")
|
||||
set(_wx_private_font "-DwxUSE_PRIVATE_FONTS=1")
|
||||
|
||||
|
|
@ -20,37 +17,16 @@ else ()
|
|||
set(_wx_edge "-DwxUSE_WEBVIEW_EDGE=OFF")
|
||||
endif ()
|
||||
|
||||
set(_wx_orcaslicer_patch "${CMAKE_CURRENT_LIST_DIR}/0001-wx-3.1.5-patch-for-Orca.patch")
|
||||
if (MSVC)
|
||||
set(_patch_cmd if not exist WXWIDGETS_PATCHED ( "${GIT_EXECUTABLE}" apply --verbose --ignore-space-change --whitespace=fix ${_wx_orcaslicer_patch} && type nul > WXWIDGETS_PATCHED ) )
|
||||
else ()
|
||||
set(_patch_cmd test -f WXWIDGETS_PATCHED || ${PATCH_CMD} ${_wx_orcaslicer_patch} && touch WXWIDGETS_PATCHED)
|
||||
endif ()
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
set(_patch_cmd ${PATCH_CMD} ${_wx_orcaslicer_patch})
|
||||
endif ()
|
||||
|
||||
# Note: for anybody wanting to switch to tarball fetching - this won't just work as
|
||||
# git apply expects a git repo. Either git init empty repo, or change patching method.
|
||||
# if (WIN32)
|
||||
# # Windows requires a different tarball because of configured line endings as stated in docs.
|
||||
# set(_wx_tarball_url https://github.com/wxWidgets/wxWidgets/releases/download/${_wx_git_tag}/wxWidgets-${_wx_version}.7z)
|
||||
# set(_wx_tarball_hash 99f5382312e4a4aea444ada07341a72c5d4a69b58d8e76586d4b94ede7f5ef4d)
|
||||
# else()
|
||||
# set(_wx_tarball_url https://github.com/wxWidgets/wxWidgets/releases/download/${_wx_git_tag}/wxWidgets-${_wx_version}.tar.bz2)
|
||||
# set(_wx_tarball_hash d7b3666de33aa5c10ea41bb9405c40326e1aeb74ee725bb88f90f1d50270a224)
|
||||
# endif()
|
||||
# Note: The flatpak build builds wxwidgets separately due to CI size constraints.
|
||||
# ANY CHANGES MADE IN HERE MUST ALSO BE REFLECTED IN `flatpak/io.github.SoftFever.OrcaSlicer.yml`.
|
||||
# ** THIS INCLUDES BUILD ARGS. **
|
||||
# ...if you can find a way around this size limitation, be my guest.
|
||||
|
||||
orcaslicer_add_cmake_project(
|
||||
wxWidgets
|
||||
GIT_REPOSITORY "https://github.com/wxWidgets/wxWidgets"
|
||||
GIT_TAG ${_wx_git_tag}
|
||||
GIT_REPOSITORY "https://github.com/SoftFever/Orca-deps-wxWidgets"
|
||||
GIT_SHALLOW ON
|
||||
# URL ${_wx_tarball_url}
|
||||
# URL_HASH SHA256=${_wx_tarball_hash}
|
||||
PATCH_COMMAND ${_patch_cmd}
|
||||
DEPENDS ${PNG_PKG} ${ZLIB_PKG} ${EXPAT_PKG} dep_TIFF dep_JPEG
|
||||
DEPENDS ${PNG_PKG} ${ZLIB_PKG} ${EXPAT_PKG} ${TIFF_PKG} ${JPEG_PKG}
|
||||
CMAKE_ARGS
|
||||
-DwxBUILD_PRECOMP=ON
|
||||
${_wx_toolkit}
|
||||
|
|
@ -63,6 +39,7 @@ orcaslicer_add_cmake_project(
|
|||
-DwxUSE_UNICODE=ON
|
||||
${_wx_private_font}
|
||||
-DwxUSE_OPENGL=ON
|
||||
-DwxUSE_WEBREQUEST=ON
|
||||
-DwxUSE_WEBVIEW=ON
|
||||
${_wx_edge}
|
||||
-DwxUSE_WEBVIEW_IE=OFF
|
||||
|
|
@ -76,9 +53,10 @@ orcaslicer_add_cmake_project(
|
|||
-DwxUSE_ZLIB=sys
|
||||
-DwxUSE_LIBJPEG=sys
|
||||
-DwxUSE_LIBTIFF=sys
|
||||
-DwxUSE_NANOSVG=OFF
|
||||
-DwxUSE_EXPAT=sys
|
||||
)
|
||||
|
||||
if (MSVC)
|
||||
add_debug_dep(dep_wxWidgets)
|
||||
endif ()
|
||||
endif ()
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ The PA value for this test will be increased by 0.002 for every 1 mm increase in
|
|||
Steps:
|
||||
1. Select the printer, filament, and process you would like to use for the test.
|
||||
2. Examine each corner of the print and mark the height that yields the best overall result.
|
||||
3. I selected a height of 8 mm for this case, so the pressure advance value should be calculated as `0.002x8 = 0.016`.
|
||||
3. I selected a height of 8 mm for this case, so the pressure advance value should be calculated as `PressureAdvanceStart+(PressureAdvanceStep x measured)` example: `0+(0.002 x 8) = 0.016`.
|
||||

|
||||
|
||||

|
||||
|
|
|
|||
|
|
@ -34,7 +34,8 @@ G29 L{adaptive_bed_mesh_min[0]} R{adaptive_bed_mesh_max[0]} F{adaptive_bed_mesh_
|
|||
### Klipper:
|
||||
```
|
||||
; Always pass `ADAPTIVE_MARGIN=0` because Orca has already handled `adaptive_bed_mesh_margin` internally
|
||||
BED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=1 ADAPTIVE_MARGIN=0
|
||||
; Make sure to set ADAPTIVE to 0 otherwise Klipper will use it's own adaptive bed mesh logic
|
||||
BED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=0 ADAPTIVE_MARGIN=0
|
||||
```
|
||||
### RRF:
|
||||
```
|
||||
|
|
|
|||
2
flatpak/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
builddir
|
||||
.flatpak-builder
|
||||
3
flatpak/README.md
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# OrcaSlicer
|
||||
|
||||
This is basically a copy of [com.bambulab.BambuStudio](https://github.com/flathub/com.bambulab.BambuStudio). As such, same rules apply here as does over there.
|
||||
15
flatpak/entrypoint
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# Work-around https://gitlab.gnome.org/GNOME/gnome-build-meta/-/issues/754
|
||||
grep -q org.freedesktop.Platform.GL.nvidia /.flatpak-info && export WEBKIT_DISABLE_DMABUF_RENDERER=1
|
||||
|
||||
# Work-around https://github.com/bambulab/BambuStudio/issues/3440
|
||||
export LC_ALL=C.UTF-8
|
||||
|
||||
if [ $BAMBU_STUDIO_DARK_THEME == true ]; then
|
||||
export GTK_THEME='Adwaita:dark'
|
||||
# echo "Message: $(date +%T): INFO: using dark theme variant"
|
||||
fi
|
||||
|
||||
exec /app/bin/orca-slicer "$@" &
|
||||
$(/app/bin/set-dark-theme-variant.py) &
|
||||
BIN
flatpak/images/1.png
Normal file
|
After Width: | Height: | Size: 280 KiB |
BIN
flatpak/images/2.png
Normal file
|
After Width: | Height: | Size: 976 KiB |
48
flatpak/io.github.softfever.OrcaSlicer.metainfo.xml
Executable file
|
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<component type="desktop">
|
||||
<id>io.github.softfever.OrcaSlicer</id>
|
||||
<launchable type="desktop-id">io.github.softfever.OrcaSlicer.desktop</launchable>
|
||||
<provides>
|
||||
<id>io.github.softfever.OrcaSlicer.desktop</id>
|
||||
</provides>
|
||||
<name>OrcaSlicer</name>
|
||||
<!-- hehe hadess @ppd
|
||||
... seriously though, thanks -->
|
||||
<summary>Get even more perfect prints!</summary>
|
||||
<developer_name>SoftFever</developer_name>
|
||||
<url type="homepage">https://github.com/SoftFever/OrcaSlicer</url>
|
||||
<url type="help">https://github.com/SoftFever/OrcaSlicer/wiki</url>
|
||||
<url type="bugtracker">https://github.com/SoftFever/OrcaSlicer/issues/</url>
|
||||
<url type="donation">https://ko-fi.com/SoftFever</url>
|
||||
<metadata_license>0BSD</metadata_license>
|
||||
<project_license>AGPL-3.0-only</project_license>
|
||||
<content_rating type="oars-1.1" />
|
||||
<requires>
|
||||
<display_length compare="gt">768</display_length>
|
||||
</requires>
|
||||
<recommends>
|
||||
<control>keyboard</control>
|
||||
<control>pointing</control>
|
||||
</recommends>
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<image>https://raw.githubusercontent.com/powpingdone/com.github.softfever.orcaslicer/master/images/1.png</image>
|
||||
<caption>A model ready to be sliced on a buildplate.</caption>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<image>https://raw.githubusercontent.com/powpingdone/com.github.softfever.orcaslicer/master/images/2.png
|
||||
</image>
|
||||
<caption>A calibration test ready to be printed out.</caption>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
<description>
|
||||
<p>A 3D printer slicer forked from Bambu Studio, PrusaSlicer, and SuperSlicer with many more printer profiles, helpful calibration prints, and many more features to get your 3D printer printing perfectly!</p>
|
||||
</description>
|
||||
<branding>
|
||||
<color type="primary" scheme_preference="light">#009688</color>
|
||||
</branding>
|
||||
<releases>
|
||||
<release version="2.0.0-951fc8e" date="2024-01-30"> <url>https://github.com/SoftFever/OrcaSlicer/commit/951fc8e98a0d5ca0ccb254315646ce7889a44836</url>
|
||||
</release>
|
||||
</releases>
|
||||
</component>
|
||||
344
flatpak/io.github.softfever.OrcaSlicer.yml
Executable file
|
|
@ -0,0 +1,344 @@
|
|||
app-id: io.github.softfever.OrcaSlicer
|
||||
runtime: org.gnome.Platform
|
||||
runtime-version: "45"
|
||||
sdk: org.gnome.Sdk
|
||||
command: entrypoint
|
||||
separate-locales: true
|
||||
rename-icon: OrcaSlicer
|
||||
finish-args:
|
||||
- --share=ipc
|
||||
- --socket=x11
|
||||
- --share=network
|
||||
- --device=all
|
||||
- --filesystem=home
|
||||
- --filesystem=xdg-run/gvfs
|
||||
- --filesystem=/run/media
|
||||
- --filesystem=/media
|
||||
# Allow OrcaSlicer to talk to other instances
|
||||
- --talk-name=io.github.softfever.OrcaSlicer.InstanceCheck.*
|
||||
- --system-talk-name=org.freedesktop.UDisks2
|
||||
# set dark theme
|
||||
- --env=BAMBU_STUDIO_DARK_THEME=false
|
||||
|
||||
modules:
|
||||
|
||||
# JPEG codec for the liveview
|
||||
- name: gst-plugins-good
|
||||
buildsystem: meson
|
||||
config-opts:
|
||||
- -Dauto_features=disabled
|
||||
- -Djpeg=enabled
|
||||
- -Ddoc=disabled
|
||||
- -Dexamples=disabled
|
||||
- -Dtests=disabled
|
||||
sources:
|
||||
- type: archive
|
||||
url: https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.22.8.tar.xz
|
||||
sha256: e305b9f07f52743ca481da0a4e0c76c35efd60adaf1b0694eb3bb021e2137e39
|
||||
|
||||
# xprop, xlib is needed to manipulate the X11 window and set _GTK_THEME_VARIANT dark on X11
|
||||
# and paint the window dark when PRUSA_SLICER_DARK_THEME is true
|
||||
# see: entrypoint & set-dark-theme-variant.py (originated from spotify client flatpak)
|
||||
- name: xprop
|
||||
sources:
|
||||
- type: archive
|
||||
url: http://mirrors.ircam.fr/pub/x.org/individual/app/xprop-1.2.5.tar.gz
|
||||
sha256: b7bf6b6be6cf23e7966a153fc84d5901c14f01ee952fbd9d930aa48e2385d670
|
||||
- name: python-setuptools_scm
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- pip3 install --no-deps --no-build-isolation --verbose --prefix=${FLATPAK_DEST} .
|
||||
sources:
|
||||
- type: archive
|
||||
url: https://files.pythonhosted.org/packages/57/38/930b1241372a9f266a7df2b184fb9d4f497c2cef2e016b014f82f541fe7c/setuptools_scm-6.0.1.tar.gz
|
||||
sha256: d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92
|
||||
- name: python-xlib
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- pip3 install --no-deps --no-build-isolation --verbose --prefix=${FLATPAK_DEST} .
|
||||
sources:
|
||||
- type: archive
|
||||
url: https://files.pythonhosted.org/packages/86/f5/8c0653e5bb54e0cbdfe27bf32d41f27bc4e12faa8742778c17f2a71be2c0/python-xlib-0.33.tar.gz
|
||||
sha256: 55af7906a2c75ce6cb280a584776080602444f75815a7aff4d287bb2d7018b32
|
||||
|
||||
# For libOSMesa
|
||||
- name: mesa
|
||||
buildsystem: meson
|
||||
config-opts:
|
||||
- -Dosmesa=classic
|
||||
- -Ddri-drivers=[]
|
||||
- -Dgallium-drivers=[]
|
||||
- -Dvulkan-drivers=[]
|
||||
- -Dplatforms=[]
|
||||
build-options:
|
||||
arch:
|
||||
aarch64:
|
||||
config-opts:
|
||||
- -Dlibunwind=disabled
|
||||
cleanup:
|
||||
- /share/drirc.d
|
||||
- /include
|
||||
- "*.a"
|
||||
sources:
|
||||
- type: archive
|
||||
url: https://archive.mesa3d.org/mesa-20.2.6.tar.xz
|
||||
sha256: f12ca3c6c622f11cd79ad66b4220f04514fa96f795062fe92a37339ab19885db
|
||||
|
||||
- name: glu
|
||||
config-opts:
|
||||
- --disable-static
|
||||
sources:
|
||||
- type: archive
|
||||
url: https://ftp.osuosl.org/pub/blfs/conglomeration/glu/glu-9.0.2.tar.xz
|
||||
sha256: 6e7280ff585c6a1d9dfcdf2fca489251634b3377bfc33c29e4002466a38d02d4
|
||||
cleanup:
|
||||
- /include
|
||||
- /lib/*.a
|
||||
- /lib/*.la
|
||||
- /lib/pkgconfig
|
||||
|
||||
- name: kde-extra-cmake-modules
|
||||
buildsystem: cmake-ninja
|
||||
sources:
|
||||
- type: git
|
||||
url: https://github.com/KDE/extra-cmake-modules
|
||||
tag: v5.249.0
|
||||
cleanup:
|
||||
- /
|
||||
|
||||
- name: orca_wxwidgets
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- |
|
||||
mkdir builddir && cd builddir
|
||||
cmake ../ -GNinja \
|
||||
-DwxBUILD_PRECOMP=ON \
|
||||
-DwxBUILD_TOOLKIT=gtk3 \
|
||||
-DwxBUILD_DEBUG_LEVEL=0 \
|
||||
-DwxBUILD_SAMPLES=OFF \
|
||||
-DwxBUILD_SHARED=ON \
|
||||
-DwxUSE_MEDIACTRL=ON \
|
||||
-DwxUSE_DETECT_SM=OFF \
|
||||
-DwxUSE_UNICODE=ON \
|
||||
-DwxUSE_PRIVATE_FONTS=ON \
|
||||
-DwxUSE_OPENGL=ON \
|
||||
-DwxUSE_WEBREQUEST=ON \
|
||||
-DwxUSE_WEBVIEW=ON \
|
||||
-DwxUSE_WEBVIEW_EDGE=OFF \
|
||||
-DwxUSE_WEBVIEW_IE=OFF \
|
||||
-DwxUSE_REGEX=builtin \
|
||||
-DwxUSE_LIBSDL=OFF \
|
||||
-DwxUSE_XTEST=OFF \
|
||||
-DwxUSE_STC=OFF \
|
||||
-DwxUSE_AUI=ON \
|
||||
-DwxUSE_LIBPNG=sys \
|
||||
-DwxUSE_ZLIB=sys \
|
||||
-DwxUSE_LIBJPEG=sys \
|
||||
-DwxUSE_LIBTIFF=sys \
|
||||
-DwxUSE_EXPAT=sys \
|
||||
-DBUILD_SHARED_LIBS:BOOL=ON \
|
||||
-DCMAKE_INSTALL_PREFIX:STRING=/app \
|
||||
-DCMAKE_PREFIX_PATH=/app \
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
cmake --build . --target install -j$FLATPAK_BUILDER_N_JOBS
|
||||
sources:
|
||||
- type: git
|
||||
url: https://github.com/SoftFever/Orca-deps-wxWidgets
|
||||
branch: master
|
||||
path: ../
|
||||
cleanup:
|
||||
- "*.la"
|
||||
- "*.a"
|
||||
- "*.cmake"
|
||||
- /include
|
||||
- /app/bin/*
|
||||
|
||||
- name: orca_deps
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
# start build
|
||||
- |
|
||||
mkdir deps/build && cd deps/build
|
||||
cmake ../ \
|
||||
-DDEP_WX_GTK3=ON \
|
||||
-DDEP_DOWNLOAD_DIR=/run/build/orca_deps/external-packages \
|
||||
-DCMAKE_PREFIX_PATH=/app \
|
||||
-DDESTDIR=/app \
|
||||
-DCMAKE_INSTALL_LIBDIR=/app/lib \
|
||||
-DFLATPAK=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=/app
|
||||
cmake --build .
|
||||
rm -r /run/build/orca_deps/external-packages
|
||||
|
||||
cleanup:
|
||||
- /app/include
|
||||
- "*.a"
|
||||
- "*.la"
|
||||
- /app/lib/cmake
|
||||
|
||||
sources:
|
||||
# -
|
||||
# Section bellow fetches all OrcaSlicer dependencies before the build process and stores them in external-packages/*/* .
|
||||
# -DDEP_DOWNLOAD_DIR is set in the build process which has to match with dest.
|
||||
#
|
||||
# NOTE: The url, dest folder name and sha256 must match from OrcaSlicer's cmake scripts and folder names in OrcaSlicer/deps/
|
||||
# -
|
||||
|
||||
# OrcaSlicer Source Archive
|
||||
- type: dir
|
||||
path: ../
|
||||
|
||||
# Blosc
|
||||
- type: file
|
||||
url: https://github.com/tamasmeszaros/c-blosc/archive/refs/heads/v1.17.0_tm.zip
|
||||
dest: external-packages/Blosc
|
||||
sha256: dcb48bf43a672fa3de6a4b1de2c4c238709dad5893d1e097b8374ad84b1fc3b3
|
||||
|
||||
# Cereal
|
||||
- type: file
|
||||
url: https://github.com/USCiLab/cereal/archive/refs/tags/v1.3.0.zip
|
||||
dest: external-packages/Cereal
|
||||
sha256: 71642cb54658e98c8f07a0f0d08bf9766f1c3771496936f6014169d3726d9657
|
||||
|
||||
# CGAL
|
||||
- type: file
|
||||
url: https://github.com/CGAL/cgal/archive/refs/tags/v5.4.zip
|
||||
dest: external-packages/CGAL
|
||||
sha256: d7605e0a5a5ca17da7547592f6f6e4a59430a0bc861948974254d0de43eab4c0
|
||||
|
||||
# GMP
|
||||
- type: file
|
||||
url: https://github.com/SoftFever/OrcaSlicer_deps/releases/download/gmp-6.2.1/gmp-6.2.1.tar.bz2
|
||||
dest: external-packages/GMP
|
||||
sha256: eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c
|
||||
|
||||
# MPFR
|
||||
- type: file
|
||||
url: https://www.mpfr.org/mpfr-current/mpfr-4.2.1.tar.bz2
|
||||
dest: external-packages/MPFR
|
||||
sha256: b9df93635b20e4089c29623b19420c4ac848a1b29df1cfd59f26cab0d2666aa0
|
||||
|
||||
# NLopt
|
||||
- type: file
|
||||
url: https://github.com/stevengj/nlopt/archive/v2.5.0.tar.gz
|
||||
dest: external-packages/NLopt
|
||||
sha256: c6dd7a5701fff8ad5ebb45a3dc8e757e61d52658de3918e38bab233e7fd3b4ae
|
||||
|
||||
# OCCT
|
||||
- type: file
|
||||
url: https://github.com/Open-Cascade-SAS/OCCT/archive/refs/tags/V7_6_0.zip
|
||||
dest: external-packages/OCCT
|
||||
sha256: 28334f0e98f1b1629799783e9b4d21e05349d89e695809d7e6dfa45ea43e1dbc
|
||||
|
||||
# OpenCSG
|
||||
- type: file
|
||||
url: https://github.com/floriankirsch/OpenCSG/archive/refs/tags/opencsg-1-4-2-release.zip
|
||||
dest: external-packages/OpenCSG
|
||||
sha256: 51afe0db79af8386e2027d56d685177135581e0ee82ade9d7f2caff8deab5ec5
|
||||
|
||||
# OpenCV
|
||||
- type: file
|
||||
url: https://github.com/opencv/opencv/archive/refs/tags/4.6.0.tar.gz
|
||||
dest: external-packages/OpenCV
|
||||
sha256: 1ec1cba65f9f20fe5a41fda1586e01c70ea0c9a6d7b67c9e13edf0cfe2239277
|
||||
|
||||
# OpenEXR
|
||||
- type: file
|
||||
url: https://github.com/AcademySoftwareFoundation/openexr/archive/refs/tags/v2.5.5.zip
|
||||
dest: external-packages/OpenEXR
|
||||
sha256: 0307a3d7e1fa1e77e9d84d7e9a8694583fbbbfd50bdc6884e2c96b8ef6b902de
|
||||
|
||||
# OpenVDB
|
||||
- type: file
|
||||
url: https://github.com/tamasmeszaros/openvdb/archive/a68fd58d0e2b85f01adeb8b13d7555183ab10aa5.zip
|
||||
dest: external-packages/OpenVDB
|
||||
sha256: f353e7b99bd0cbfc27ac9082de51acf32a8bc0b3e21ff9661ecca6f205ec1d81
|
||||
|
||||
# Qhull
|
||||
- type: file
|
||||
url: https://github.com/qhull/qhull/archive/v8.0.1.zip
|
||||
dest: external-packages/Qhull
|
||||
sha256: 5287f5edd6a0372588f5d6640799086a4033d89d19711023ef8229dd9301d69b
|
||||
|
||||
# TBB
|
||||
- type: file
|
||||
url: https://github.com/oneapi-src/oneTBB/archive/refs/tags/v2021.5.0.zip
|
||||
dest: external-packages/TBB
|
||||
sha256: 83ea786c964a384dd72534f9854b419716f412f9d43c0be88d41874763e7bb47
|
||||
|
||||
# Boost
|
||||
- type: file
|
||||
url: https://github.com/boostorg/boost/releases/download/boost-1.84.0/boost-1.84.0.tar.gz
|
||||
dest: external-packages/Boost
|
||||
sha256: 4d27e9efed0f6f152dc28db6430b9d3dfb40c0345da7342eaa5a987dde57bd95
|
||||
|
||||
# GLFW
|
||||
- type: file
|
||||
url: https://github.com/glfw/glfw/archive/refs/tags/3.3.7.zip
|
||||
dest: external-packages/GLFW
|
||||
sha256: e02d956935e5b9fb4abf90e2c2e07c9a0526d7eacae8ee5353484c69a2a76cd0
|
||||
|
||||
- name: OrcaSlicer
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- |
|
||||
mkdir -p build && cd build
|
||||
CXXFLAGS=-std=gnu++20 cmake ../ \
|
||||
-DSLIC3R_PCH=OFF \
|
||||
-DSLIC3R_FHS=ON \
|
||||
-DSLIC3R_GTK=3 \
|
||||
-DSLIC3R_STATIC=ON \
|
||||
-DSLIC3R_BUILD_TESTS=OFF \
|
||||
-DSLIC3R_DESKTOP_INTEGRATION=OFF \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DFLATPAK=ON \
|
||||
-DBBL_RELEASE_TO_PUBLIC=1 \
|
||||
-DCMAKE_PREFIX_PATH=/app \
|
||||
-DCMAKE_INSTALL_PREFIX=/app
|
||||
CXXFLAGS=-std=gnu++20 cmake --build . --target install -j$FLATPAK_BUILDER_N_JOBS
|
||||
|
||||
cleanup:
|
||||
- /include
|
||||
|
||||
post-install:
|
||||
|
||||
- | # Desktop Integration files
|
||||
install -Dm644 -t /app/share/icons/hicolor/scalable/apps/ resources/images/OrcaSlicer.svg
|
||||
install -Dm644 ${FLATPAK_ID}.metainfo.xml /app/share/metainfo/${FLATPAK_ID}.metainfo.xml
|
||||
mv /app/share/applications/OrcaSlicer.desktop /app/share/applications/${FLATPAK_ID}.desktop
|
||||
desktop-file-edit --set-key=Exec --set-value="entrypoint %U" /app/share/applications/${FLATPAK_ID}.desktop
|
||||
install -Dm755 set-dark-theme-variant.py /app/bin
|
||||
install -Dm755 entrypoint /app/bin
|
||||
install -Dm755 umount /app/bin
|
||||
|
||||
sources:
|
||||
# -
|
||||
# Section bellow fetches all OrcaSlicer dependencies before the build process and stores them in external-packages/*/* .
|
||||
# -DDEP_DOWNLOAD_DIR is set in the build process which has to match with dest.
|
||||
#
|
||||
# NOTE: The url, dest folder name and sha256 must match from OrcaSlicer's cmake scripts and folder names in OrcaSlicer/deps/
|
||||
# -
|
||||
|
||||
# OrcaSlicer Source Archive
|
||||
- type: dir
|
||||
path: ../
|
||||
|
||||
# AppData metainfo for Gnome Software & Co.
|
||||
- type: file
|
||||
path: io.github.softfever.OrcaSlicer.metainfo.xml
|
||||
|
||||
# script to set dark theme variant
|
||||
- type: file
|
||||
path: set-dark-theme-variant.py
|
||||
|
||||
# start-up script
|
||||
# README: workaround for the following issues, also enables dark theme variant:
|
||||
# SEE: https://github.com/flathub/com.bambulab.BambuStudio/issues/27
|
||||
# SEE: https://github.com/flathub/com.bambulab.BambuStudio/issues/3
|
||||
# SEE: https://github.com/prusa3d/PrusaSlicer/issues/2365
|
||||
- type: file
|
||||
path: entrypoint
|
||||
|
||||
# umount wrapper used to redirect umount calls to udisk2
|
||||
- type: file
|
||||
path: umount
|
||||
85
flatpak/set-dark-theme-variant.py
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import Xlib
|
||||
import Xlib.display
|
||||
import time
|
||||
import subprocess
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
disp = Xlib.display.Display()
|
||||
root = disp.screen().root
|
||||
|
||||
NET_CLIENT_LIST = disp.intern_atom('_NET_CLIENT_LIST')
|
||||
|
||||
|
||||
def set_theme_variant_by_window_id(id, variant):
|
||||
# Use subprocess to call
|
||||
# xprop and set the variant from id.
|
||||
try:
|
||||
s = subprocess.call(['xprop', '-f', '_GTK_THEME_VARIANT', '8u', '-set', '_GTK_THEME_VARIANT', variant, '-id', str(id)],
|
||||
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
||||
if s == 0:
|
||||
return True
|
||||
return False
|
||||
except Exception as ex:
|
||||
return False
|
||||
|
||||
|
||||
def set_theme_variant_from_win_id_collection(win_id_collection, variant):
|
||||
# Loop though all of the collected
|
||||
# window ids and set theme variant
|
||||
for win_id in win_id_collection:
|
||||
set_theme_variant_by_window_id(win_id, variant)
|
||||
|
||||
|
||||
def collection_win_id_from_wm_class_name(win_class_name):
|
||||
|
||||
collect = []
|
||||
|
||||
# Loop though all of the windows
|
||||
# and collect id's those that match
|
||||
# win_class: prusa-slicer
|
||||
for win_id in root.get_full_property(NET_CLIENT_LIST, Xlib.X.AnyPropertyType).value:
|
||||
try:
|
||||
win = disp.create_resource_object('window', win_id)
|
||||
if not win.get_wm_transient_for():
|
||||
win_class = win.get_wm_class()
|
||||
if win_id and win_class_name in win_class:
|
||||
collect.append(
|
||||
win_id) if win_id not in collect else collect
|
||||
except Xlib.error.BadWindow:
|
||||
pass
|
||||
|
||||
return collect
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
if os.environ.get('PRUSA_SLICER_DARK_THEME', 'false') != 'true':
|
||||
sys.exit(0)
|
||||
|
||||
# Listen for X Property Change events.
|
||||
root.change_attributes(event_mask=Xlib.X.PropertyChangeMask)
|
||||
# the class name of the slicer window
|
||||
win_class_name = 'prusa-slicer'
|
||||
# the variant to set
|
||||
variant = 'dark'
|
||||
|
||||
start = time.time()
|
||||
|
||||
while True:
|
||||
# collect all of the window ids
|
||||
collect = collection_win_id_from_wm_class_name(win_class_name)
|
||||
# give PrusaSlicer window 2 secs to
|
||||
# collect the wanted window ids
|
||||
# set the theme variant and exit
|
||||
if time.time() - start <= 2:
|
||||
# disp.next_event() blocks if no events are
|
||||
# queued. In combination with while True
|
||||
# it creates a very simple event loop.
|
||||
disp.next_event()
|
||||
set_theme_variant_from_win_id_collection(collect, variant)
|
||||
else:
|
||||
break
|
||||
10
flatpak/umount
Executable file
|
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env sh
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "No arguments supplied"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DEVICE=$(basename $(findmnt -oSOURCE -n "$@") )
|
||||
|
||||
exec /usr/bin/gdbus call -y -d org.freedesktop.UDisks2 -o /org/freedesktop/UDisks2/block_devices/$DEVICE -m org.freedesktop.UDisks2.Filesystem.Unmount "{'b': <'false'>}" 1> /dev/null
|
||||
|
||||
3
linux.d/README.md
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
Files in this directory are named for the **exact** output of `awk -F= '/^ID=/ {print $2}' /etc/os-release` for their respective distribution.
|
||||
|
||||
When `BuildLinux.sh` is executed, the respective file for the distribution will be sourced so the distribution specific instructions/logic are used.
|
||||
44
linux.d/arch
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
# these are the Arch Linux specific build functions
|
||||
FOUND_GTK3=$(pacman -Q gtk3)
|
||||
|
||||
# Addtional Dev packages for OrcaSlicer
|
||||
export REQUIRED_DEV_PACKAGES=(
|
||||
cmake
|
||||
curl
|
||||
dbus
|
||||
eglexternalplatform
|
||||
extra-cmake-modules
|
||||
file
|
||||
gettext
|
||||
git
|
||||
glew
|
||||
gstreamer
|
||||
gstreamermm
|
||||
gtk3
|
||||
libmspack
|
||||
libsecret
|
||||
mesa
|
||||
ninja
|
||||
openssl
|
||||
texinfo
|
||||
wayland-protocols
|
||||
webkit2gtk
|
||||
wget
|
||||
)
|
||||
|
||||
if [[ -n "$UPDATE_LIB" ]]
|
||||
then
|
||||
echo -n -e "Updating linux ...\n"
|
||||
NEEDED_PKGS=""
|
||||
for PKG in ${REQUIRED_DEV_PACKAGES[@]}; do
|
||||
pacman -Q ${PKG} > /dev/null || NEEDED_PKGS+=" ${PKG}"
|
||||
done
|
||||
|
||||
if [ -n "${NEEDED_PKGS}" ]; then
|
||||
sudo pacman -Syy --noconfirm ${NEEDED_PKGS}
|
||||
fi
|
||||
echo -e "done\n"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
FOUND_GTK3_DEV=${FOUND_GTK3}
|
||||
51
linux.d/debian
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
FOUND_GTK3=$(dpkg -l libgtk* | grep gtk-3)
|
||||
|
||||
REQUIRED_DEV_PACKAGES=(
|
||||
autoconf
|
||||
build-essential
|
||||
cmake
|
||||
eglexternalplatform-dev
|
||||
extra-cmake-modules
|
||||
file
|
||||
gettext
|
||||
git
|
||||
libcurl4-openssl-dev
|
||||
libdbus-1-dev
|
||||
libglew-dev
|
||||
libgstreamerd-3-dev
|
||||
libgtk-3-dev
|
||||
libmspack-dev
|
||||
libosmesa6-dev
|
||||
libsecret-1-dev
|
||||
libssl-dev
|
||||
libtool
|
||||
libudev-dev
|
||||
libwebkit2gtk-4.0-dev
|
||||
ninja-build
|
||||
texinfo
|
||||
wget
|
||||
)
|
||||
|
||||
if [[ -n "$UPDATE_LIB" ]]
|
||||
then
|
||||
# for ubuntu 22+ and 23+:
|
||||
ubu_major_version="$(grep VERSION_ID /etc/os-release | cut -d "=" -f 2 | cut -d "." -f 1 | tr -d /\"/)"
|
||||
if [ $ubu_major_version == "22" ] || [ $ubu_major_version == "23" ]
|
||||
then
|
||||
REQUIRED_DEV_PACKAGES+=(curl libfuse-dev libssl-dev libcurl4-openssl-dev m4)
|
||||
fi
|
||||
if [[ -n "$BUILD_DEBUG" ]]
|
||||
then
|
||||
REQUIRED_DEV_PACKAGES+=(libssl-dev libcurl4-openssl-dev)
|
||||
fi
|
||||
# TODO: optimize this by checking which, if any, packages are already installed
|
||||
|
||||
# install them all at once
|
||||
sudo apt update
|
||||
sudo apt install -y ${REQUIRED_DEV_PACKAGES[@]}
|
||||
|
||||
echo -e "done\n"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
FOUND_GTK3_DEV=$(dpkg -l libgtk* | grep gtk-3-dev || echo '')
|
||||
48
linux.d/fedora
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
FOUND_GTK3=$(rpm -qa | grep -P '^gtk3' || true)
|
||||
|
||||
REQUIRED_DEV_PACKAGES=(
|
||||
autoconf
|
||||
automake
|
||||
cmake
|
||||
dbus-devel
|
||||
eglexternalplatform-devel
|
||||
extra-cmake-modules
|
||||
file
|
||||
gcc
|
||||
gcc-c++
|
||||
gettext
|
||||
git
|
||||
gstreamer1-devel
|
||||
gstreamermm-devel
|
||||
gtk3-devel
|
||||
libmspack-devel
|
||||
libsecret-devel
|
||||
libtool
|
||||
m4
|
||||
mesa-libGLU-devel
|
||||
mesa-libOSMesa-devel
|
||||
ninja-build
|
||||
openssl-devel
|
||||
perl-FindBin
|
||||
texinfo
|
||||
wayland-protocols-devel
|
||||
webkit2gtk4.0-devel
|
||||
wget
|
||||
libcurl-devel
|
||||
)
|
||||
|
||||
if [[ -n "$UPDATE_LIB" ]]
|
||||
then
|
||||
NEEDED_PKGS=""
|
||||
for PKG in ${REQUIRED_DEV_PACKAGES[@]}; do
|
||||
rpm -q ${PKG} > /dev/null || NEEDED_PKGS+=" ${PKG}"
|
||||
done
|
||||
|
||||
if [ -n "${NEEDED_PKGS}" ]; then
|
||||
sudo dnf install -y ${NEEDED_PKGS}
|
||||
fi
|
||||
echo -e "done\n"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
FOUND_GTK3_DEV=$(rpm -qa | grep -P '^gtk3-devel' || true)
|
||||
|
|
@ -53,6 +53,11 @@ src/slic3r/GUI/BBLTopbar.cpp
|
|||
src/slic3r/GUI/DownloadProgressDialog.cpp
|
||||
src/slic3r/GUI/RecenterDialog.cpp
|
||||
src/slic3r/GUI/BackgroundSlicingProcess.cpp
|
||||
src/slic3r/GUI/MultiMachinePage.cpp
|
||||
src/slic3r/GUI/MultiMachineManagerPage.cpp
|
||||
src/slic3r/GUI/MultiMachine.cpp
|
||||
src/slic3r/GUI/MultiTaskManagerPage.cpp
|
||||
src/slic3r/GUI/SendMultiMachinePage.cpp
|
||||
src/slic3r/GUI/BedShapeDialog.cpp
|
||||
src/slic3r/GUI/BedShapeDialog.hpp
|
||||
src/slic3r/GUI/ConfigManipulation.cpp
|
||||
|
|
@ -105,8 +110,10 @@ src/slic3r/GUI/UnsavedChangesDialog.cpp
|
|||
src/slic3r/GUI/Auxiliary.cpp
|
||||
src/slic3r/GUI/UpdateDialogs.cpp
|
||||
src/slic3r/GUI/UnsavedChangesDialog.cpp
|
||||
src/slic3r/GUI/ObjColorDialog.cpp
|
||||
src/slic3r/GUI/WipeTowerDialog.cpp
|
||||
src/slic3r/GUI/wxExtensions.cpp
|
||||
src/slic3r/GUI/wxMediaCtrl2.cpp
|
||||
src/slic3r/GUI/WebUserLoginDialog.cpp
|
||||
src/slic3r/GUI/WebGuideDialog.cpp
|
||||
src/slic3r/GUI/KBShortcutsDialog.hpp
|
||||
|
|
@ -159,6 +166,7 @@ src/slic3r/Utils/FlashAir.cpp
|
|||
src/slic3r/Utils/MKS.cpp
|
||||
src/slic3r/Utils/OctoPrint.cpp
|
||||
src/slic3r/Utils/Repetier.cpp
|
||||
src/slic3r/Utils/ProfileDescription.hpp
|
||||
src/slic3r/Utils/Obico.cpp
|
||||
src/slic3r/Utils/SimplyPrint.cpp
|
||||
src/slic3r/Utils/Flashforge.cpp
|
||||
|
|
|
|||
16893
localization/i18n/pt_BR/OrcaSlicer_pt_BR.po
Normal file
BIN
resources/handy_models/3DBenchy.3mf
Normal file
BIN
resources/handy_models/Orca_stringhell.3mf
Normal file
BIN
resources/handy_models/Stanford_Bunny.3mf
Normal file
BIN
resources/handy_models/Voron_Design_Cube_v7.3mf
Normal file
BIN
resources/handy_models/ksr_fdmtest_v4.3mf
Normal file
|
|
@ -1,137 +1 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
version="1.1"
|
||||
id="svg2"
|
||||
width="1023.9872"
|
||||
height="1023.9927"
|
||||
viewBox="0 0 1023.9872 1023.9927"
|
||||
sodipodi:docname="BambuStudio.svg"
|
||||
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs6">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient619">
|
||||
<stop
|
||||
style="stop-color:#d9d9d9;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop615" />
|
||||
<stop
|
||||
style="stop-color:#f9f9f9;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop617" />
|
||||
</linearGradient>
|
||||
<clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipPath16">
|
||||
<path
|
||||
d="M 0,792 H 612 V 0 H 0 Z"
|
||||
id="path14" />
|
||||
</clipPath>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient619"
|
||||
id="linearGradient621"
|
||||
x1="0"
|
||||
y1="0"
|
||||
x2="1024"
|
||||
y2="1024.9971"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0000572,0,0,1.0000572,-0.06243956,-0.05871163)" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="namedview4"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.25"
|
||||
inkscape:cx="292"
|
||||
inkscape:cy="568"
|
||||
inkscape:window-width="1350"
|
||||
inkscape:window-height="1237"
|
||||
inkscape:window-x="486"
|
||||
inkscape:window-y="91"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="layer1" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
inkscape:label="background"
|
||||
transform="matrix(0.99895749,0,0,0.99799215,-0.93372195,0.0585938)">
|
||||
<rect
|
||||
style="fill:url(#linearGradient621);fill-opacity:1;stroke-width:1.00006"
|
||||
id="rect457"
|
||||
width="1025.0558"
|
||||
height="1026.0529"
|
||||
x="0.93469638"
|
||||
y="-0.058711685"
|
||||
rx="2.0001144"
|
||||
ry="2.0001144" />
|
||||
</g>
|
||||
<g
|
||||
id="g8"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:label="OrcaS"
|
||||
transform="matrix(1.3333333,0,0,-1.3333333,1.3995581e-8,1055.9963)">
|
||||
<g
|
||||
id="g10"
|
||||
transform="translate(76.258954,16.062441)">
|
||||
<g
|
||||
id="g12"
|
||||
clip-path="url(#clipPath16)">
|
||||
<g
|
||||
id="g18"
|
||||
transform="translate(59.7287,115.3517)">
|
||||
<path
|
||||
d="m 0,0 c 53.332,-53.285 126.698,-86.317 207.744,-86.646 164.049,-0.664 298.355,134.38 297.699,299.337 -0.324,81.496 -33.176,155.271 -86.17,208.899 z"
|
||||
style="fill:#292826;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path20" />
|
||||
</g>
|
||||
<g
|
||||
id="g22"
|
||||
transform="translate(479.0017,536.9419)">
|
||||
<path
|
||||
d="m 0,0 -419.273,-421.59 c 0.298,-0.298 0.606,-0.587 0.906,-0.884 146.894,74.925 348.023,206.579 486.003,316.297 C 52.756,-65.97 29.506,-29.859 0,0"
|
||||
style="fill:#009789;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path24" />
|
||||
</g>
|
||||
<g
|
||||
id="g26"
|
||||
transform="translate(397.0372,747)">
|
||||
<path
|
||||
d="m 0,0 c -163.742,0 -296.482,-133.473 -296.482,-298.121 0,-81.979 32.915,-156.223 86.172,-210.117 l 419.273,421.59 C 155.364,-33.096 81.529,0 0,0"
|
||||
style="fill:#292826;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path28" />
|
||||
</g>
|
||||
<g
|
||||
id="g30"
|
||||
transform="translate(397.0372,747)">
|
||||
<path
|
||||
d="m 0,0 c -56.714,0 -109.702,-16.022 -154.751,-43.796 -24.127,6.312 -54.061,11.37 -88.437,11.157 -59.938,-0.372 -108.713,-16.603 -141.822,-31.784 -8.218,-3.768 -6.898,-15.967 1.941,-17.829 21.801,-4.593 50.498,-14.324 78.883,-35.28 17.931,-13.238 31.574,-27.883 41.856,-41.597 -21.794,-41.504 -34.152,-88.793 -34.152,-138.992 0,-29.952 4.412,-58.865 12.586,-86.137 12.54,27.79 25.699,46.391 29.916,52.184 27.229,37.41 56.015,56.883 98.542,85.651 31.328,21.193 74.856,46.047 199.916,97.449 0,0 39.121,11.017 91.587,42.212 20.912,12.433 36.823,24.17 41.863,42.526 0.355,1.293 0.677,2.57 0.973,3.83 C 129.175,-22.506 67.208,0 0,0"
|
||||
style="fill:#262523;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path32" />
|
||||
</g>
|
||||
<g
|
||||
id="g34"
|
||||
transform="translate(446.5563,646.8041)">
|
||||
<path
|
||||
d="m 0,0 c 10.875,-19.229 -10.891,-52.305 -48.616,-73.879 -37.725,-21.573 -77.124,-23.474 -88,-4.245 -10.875,19.229 10.891,52.305 48.617,73.879 C -50.274,17.328 -10.875,19.229 0,0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
|
||||
id="path36" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64"><rect width="64" height="64" rx="14" style="fill:#e9e9e9"/><path d="M13.84,50.354a19.7,19.7,0,0,0,13.883,5.79A19.944,19.944,0,0,0,41.858,22.182Z" style="fill:#292826"/><path d="M41.858,22.181,13.84,50.354l.061.059A220.548,220.548,0,0,0,46.378,29.277a19.964,19.964,0,0,0-4.52-7.1" style="fill:#009789"/><path d="M36.381,7.856A19.943,19.943,0,0,0,22.327,41.818L50.345,13.646a19.693,19.693,0,0,0-13.964-5.79" style="fill:#292826"/><path d="M36.381,7.856A19.636,19.636,0,0,0,26.04,10.782a22.742,22.742,0,0,0-5.91-.745,23.084,23.084,0,0,0-9.477,2.124.632.632,0,0,0,.129,1.191,13.52,13.52,0,0,1,8.069,5.137A20.06,20.06,0,0,0,17.41,33.534a19.873,19.873,0,0,1,2-3.488c1.819-2.5,3.743-3.8,6.585-5.723,2.093-1.416,5-3.077,13.359-6.512a28.421,28.421,0,0,0,6.12-2.821c1.4-.831,2.461-1.615,2.8-2.842.024-.086.045-.172.065-.256A19.655,19.655,0,0,0,36.381,7.856" style="fill:#262523"/><path d="M39.69,14.551c.727,1.285-.728,3.495-3.249,4.937s-5.154,1.569-5.88.284.727-3.495,3.248-4.937,5.154-1.569,5.881-.284" style="fill:#fff"/></svg>
|
||||
|
Before Width: | Height: | Size: 5 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5 KiB |
|
|
@ -1,22 +1 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 24.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 128 128" enable-background="new 0 0 128 128" xml:space="preserve">
|
||||
<g id="ADD">
|
||||
<path fill="#FFFFFF" d="M72.3,117.5H10.5v-75h75v23.27c1.61-0.56,3.28-0.99,5-1.29V41.04l27-27V72.3c1.89,1.71,3.57,3.65,5,5.76V8
|
||||
c0-0.05-0.01-0.1-0.02-0.15c0-0.06-0.01-0.11-0.02-0.17c-0.03-0.22-0.08-0.43-0.15-0.62c0,0,0-0.01,0-0.01c0,0,0,0,0,0
|
||||
c-0.01-0.03-0.03-0.05-0.04-0.08c-0.05-0.11-0.11-0.21-0.17-0.31c-0.03-0.04-0.05-0.08-0.08-0.11c-0.06-0.08-0.13-0.16-0.2-0.24
|
||||
c-0.03-0.03-0.06-0.07-0.09-0.1c-0.09-0.09-0.19-0.17-0.3-0.25c-0.01-0.01-0.02-0.02-0.04-0.03c-0.12-0.08-0.24-0.15-0.38-0.2
|
||||
c-0.04-0.02-0.09-0.03-0.13-0.05c-0.1-0.04-0.2-0.07-0.3-0.09c-0.05-0.01-0.09-0.02-0.14-0.03c-0.15-0.03-0.3-0.05-0.45-0.05H48
|
||||
c-0.57,0-1.12,0.19-1.56,0.55l-40,32c-0.03,0.03-0.06,0.06-0.09,0.09c-0.07,0.06-0.13,0.12-0.19,0.19
|
||||
c-0.05,0.06-0.1,0.12-0.15,0.18c-0.05,0.07-0.09,0.13-0.14,0.2c-0.04,0.07-0.08,0.14-0.12,0.21c-0.03,0.07-0.07,0.15-0.09,0.22
|
||||
c-0.03,0.08-0.05,0.16-0.07,0.24c-0.02,0.08-0.04,0.15-0.05,0.23c-0.01,0.09-0.02,0.18-0.03,0.27c0,0.04-0.01,0.08-0.01,0.13v80
|
||||
c0,1.38,1.12,2.5,2.5,2.5h70.06C75.95,121.07,74.01,119.39,72.3,117.5z M48.88,10.5h65.09l-27,27H15.13L48.88,10.5z"/>
|
||||
<g>
|
||||
<path fill="#ED6B21" d="M96,69.5c-14.61,0-26.5,11.89-26.5,26.5s11.89,26.5,26.5,26.5s26.5-11.89,26.5-26.5S110.61,69.5,96,69.5z
|
||||
M96,117.5c-11.86,0-21.5-9.64-21.5-21.5S84.14,74.5,96,74.5s21.5,9.64,21.5,21.5S107.86,117.5,96,117.5z"/>
|
||||
<path fill="#ED6B21" d="M112,93.5H98.5V80c0-1.38-1.12-2.5-2.5-2.5s-2.5,1.12-2.5,2.5v13.5H80c-1.38,0-2.5,1.12-2.5,2.5
|
||||
s1.12,2.5,2.5,2.5h13.5V112c0,1.38,1.12,2.5,2.5,2.5s2.5-1.12,2.5-2.5V98.5H112c1.38,0,2.5-1.12,2.5-2.5S113.38,93.5,112,93.5z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M.5,13.5V1.5a1,1,0,0,1,1-1h12a1,1,0,0,1,1,1v12a1,1,0,0,1-1,1H1.5A1,1,0,0,1,.5,13.5Zm3-6h3m2,0h3m-4-4v8" style="fill:none;stroke:#949494;stroke-linecap:square;stroke-linejoin:round;opacity:1"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 290 B |
|
|
@ -1,19 +1 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.0" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
|
||||
<g id="add_x5F_copies">
|
||||
<g>
|
||||
<path fill="#808080" d="M8,2c3.31,0,6,2.69,6,6s-2.69,6-6,6s-6-2.69-6-6S4.69,2,8,2 M8,1C4.13,1,1,4.13,1,8s3.13,7,7,7s7-3.13,7-7
|
||||
S11.87,1,8,1L8,1z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#009688" d="M12,8.75H4C3.59,8.75,3.25,8.41,3.25,8S3.59,7.25,4,7.25h8c0.41,0,0.75,0.34,0.75,0.75S12.41,8.75,12,8.75
|
||||
z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#009688" d="M8,12.75c-0.41,0-0.75-0.34-0.75-0.75V4c0-0.41,0.34-0.75,0.75-0.75S8.75,3.59,8.75,4v8
|
||||
C8.75,12.41,8.41,12.75,8,12.75z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M.5,13.5V3.5a1,1,0,0,1,1-1h10a1,1,0,0,1,1,1v10a1,1,0,0,1-1,1H1.5A1,1,0,0,1,.5,13.5Zm13-1a1,1,0,0,0,1-1V1.5a1,1,0,0,0-1-1H3.5a1,1,0,0,0-1,1m0,7h3m2,0h3m-4,4v-8" style="fill:none;stroke:#949494;stroke-linecap:square;stroke-linejoin:round;opacity:1"/></svg>
|
||||
|
Before Width: | Height: | Size: 846 B After Width: | Height: | Size: 346 B |
|
|
@ -1,4 +1 @@
|
|||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M2 7H12" stroke="#262E30" stroke-linecap="round"/>
|
||||
<path d="M7 2V12" stroke="#262E30" stroke-linecap="round"/>
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M5.5,14.5c-1.105,0-2-3.686-2-7s.895-7,2-7" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/><line x1="7.5" y1="7.5" x2="15.5" y2="7.5" style="fill:none;stroke:#949494;stroke-linecap:square;stroke-linejoin:round"/><line x1="11.5" y1="11.5" x2="11.5" y2="3.5" style="fill:none;stroke:#949494;stroke-linecap:square;stroke-linejoin:round"/><path d="M3.5,13.7c-.294.511-.636.8-1,.8-1.1,0-2-3.686-2-7s.9-7,2-7c.365,0,.707.293,1,.805" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/><path d="M6.727,4.5c.334-2.208,1-4,1.773-4,.354,0,.686.378.974,1" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/><path d="M9.474,13.5c-.288.622-.62,1-.974,1-.77,0-1.439-1.792-1.773-4" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/></svg>
|
||||
|
Before Width: | Height: | Size: 223 B After Width: | Height: | Size: 922 B |
|
|
@ -1,4 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16px" height="16px">
|
||||
<path fill="#808080" d="m 4,0 v 4 h 4 v 10 h 4 V 4 h 4 V 0 Z m 1.121094,1 h 1.414062 l 2,2 H 7.115235 Z M 7.242188,1 H 8.65625 L 11,3.34375 v 1.4140625 z m 2.121093,0 h 1.408205 l 1.998045,1.998 H 11.35547 Z m 2.121094,0 h 1.414063 l 1.992186,2 h -1.414061 z m 2.121094,0 H 15 V 2.3964375 Z M 5,1.59175 6.408203,3 H 5 Z m 4,1.8789062 2,1.9941407 V 6.8788594 L 9,4.8847188 Z M 9,5.59175 11,7.5858906 V 9 L 9,7 Z m 0,2.1210938 2,2.0000002 v 1.414063 L 9,9.126906 Z m 0,2.1210942 2,2 V 13 H 10.761152 L 9,11.248 Z M 9,12 10,13 H 9 Z" />
|
||||
<path fill="#009688" d="M 3.5 9 C 1.5741139 9 0 10.574114 0 12.5 C 0 14.425886 1.5741139 16 3.5 16 C 5.4258861 16 7 14.425886 7 12.5 C 7 10.574114 5.4258861 9 3.5 9 z M 3.5 10.199219 C 4.7773592 10.199219 5.8007813 11.222641 5.8007812 12.5 C 5.8007812 12.667974 5.7816922 12.830839 5.7480469 12.988281 L 3.0117188 10.251953 C 3.1691607 10.218308 3.3320257 10.199219 3.5 10.199219 z M 2.4863281 10.433594 L 5.5664062 13.513672 C 5.3371871 13.983352 4.9544913 14.362231 4.4804688 14.583984 L 1.4160156 11.521484 C 1.6376653 11.046724 2.0161177 10.663072 2.4863281 10.433594 z M 1.2421875 12.054688 L 3.9472656 14.757812 C 3.8024888 14.786013 3.6534389 14.800781 3.5 14.800781 C 2.2226408 14.800781 1.1992188 13.777359 1.1992188 12.5 C 1.1992188 12.347226 1.2142247 12.198881 1.2421875 12.054688 z " />
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M6.5,14.5a1,1,0,0,1-1-1v-9h-4a1,1,0,0,1-1-1v-2a1,1,0,0,1,1-1h12a1,1,0,0,1,1,1v2a1,1,0,0,1-1,1h-4v2" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/><line x1="8.5" y1="8.5" x2="14.5" y2="14.5" style="fill:none;stroke:#009688;stroke-linejoin:round"/><line x1="14.5" y1="8.5" x2="8.5" y2="14.5" style="fill:none;stroke:#009688;stroke-linejoin:round"/><line x1="11.5" y1="8.5" x2="11.5" y2="14.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/><line x1="14.5" y1="11.5" x2="8.5" y2="11.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 721 B |
|
|
@ -1,4 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16px" height="16px">
|
||||
<path fill="#808080" d="m 5,14 v 2 H 10.293 11 V 15.293 6 h 5 V 0 H 0 v 6 h 5 v 5 l 1,0 V 5 L 4,3 H 1.5 V 4 H 3.583984 L 4.587891,5 H 1 V 1 h 14 v 3.293 l -1,-1 V 1.5 H 13 V 3 H 8 V 13 H 7 v 1 h 1.293 l 1,1 H 6 V 14 Z M 9.707,4 h 3.586 l 1,1 H 10.707 Z M 9,4.707 l 1,1 v 8.586 l -1,-1 z" />
|
||||
<path fill="#009688" d="M 1,12 C 0.5,12 0,12 0,12.5 0,13 0.5,13 1,13 H 6 C 6.5,13 7,13 7,12.5 7,12 6.5,12 6,12 Z" />
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M6.5,14.5a1,1,0,0,1-1-1v-9h-4a1,1,0,0,1-1-1v-2a1,1,0,0,1,1-1h12a1,1,0,0,1,1,1v2a1,1,0,0,1-1,1h-4v2" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/><path d="M15,11.5A3.5,3.5,0,1,1,11.5,8,3.5,3.5,0,0,1,15,11.5ZM14,11H9v1h5Z" style="fill:#009688"/></svg>
|
||||
|
Before Width: | Height: | Size: 503 B After Width: | Height: | Size: 373 B |
|
|
@ -1,4 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16px" height="16px">
|
||||
<path fill="#808080" d="M 6,11 V 7.5 H 5 V 11 Z M 5,13.5 7.53125,16 H 12 V 7 h 4 V 2.5 L 13.625,0 H 1 V 4.7128906 L 3.419922,7 H 7 v 7.257812 l -1,-1 z M 2.695312,1 h 10.580079 l 1,1 H 3.695312 Z M 2,1.703125 l 1,1 V 5.40625 l -1,-1 z M 4,3 h 11 v 3 h -4 v 9 H 8 V 6 H 4 Z" />
|
||||
<path fill="#009688" d="M 3.5,9 C 3,9 3,9.5 3,10 v 2 H 1 C 0.5,12 0,12 0,12.5 0,13 0.5,13 1,13 h 2 v 2 c 0,0.5 0,1 0.5,1 C 4,16 4,15.5 4,15 V 13 H 6 C 6.5,13 7,13 7,12.5 7,12 6.5,12 6,12 H 4 V 10 C 4,9.5 4,9 3.5,9 Z" />
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M6.5,14.5a1,1,0,0,1-1-1v-9h-4a1,1,0,0,1-1-1v-2a1,1,0,0,1,1-1h12a1,1,0,0,1,1,1v2a1,1,0,0,1-1,1h-4v2" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/><path d="M15,11.5A3.5,3.5,0,1,1,11.5,8,3.5,3.5,0,0,1,15,11.5ZM14,11H12V9H11v2H9v1h2v2h1V12h2Z" style="fill:#009688"/></svg>
|
||||
|
Before Width: | Height: | Size: 592 B After Width: | Height: | Size: 392 B |
|
|
@ -1,13 +1 @@
|
|||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1018_9532)">
|
||||
<path d="M5.91568 8.56926C6.89399 8.56926 7.68706 7.78905 7.68706 6.82662C7.68706 5.86419 6.89399 5.08398 5.91568 5.08398C4.93736 5.08398 4.14429 5.86419 4.14429 6.82662C4.14429 7.78905 4.93736 8.56926 5.91568 8.56926Z" fill="#ACACAC" stroke="#262E30" stroke-width="0.5" stroke-miterlimit="10"/>
|
||||
<path d="M12.4062 10.1944C12.4062 10.1278 12.4031 10.0619 12.3969 9.99688C12.3846 9.86738 12.4411 9.73764 12.5542 9.67334L12.8254 9.5191C12.9708 9.4364 13.0205 9.25075 12.9359 9.10648L12.5552 8.45774C12.4721 8.31626 12.2909 8.26771 12.1482 8.34873L11.8637 8.51036C11.7533 8.57312 11.6164 8.55773 11.5126 8.48446C11.4004 8.40531 11.2802 8.33658 11.1532 8.27958C11.0354 8.22672 10.9518 8.114 10.9518 7.9849V7.67695C10.9518 7.51127 10.8175 7.37695 10.6518 7.37695H9.8824C9.71671 7.37695 9.5824 7.51127 9.5824 7.67695V7.98451C9.5824 8.1138 9.49862 8.22664 9.38067 8.27958C9.25393 8.33647 9.13373 8.40528 9.02164 8.48444C8.91786 8.55774 8.78097 8.57312 8.67049 8.51036L8.38599 8.34873C8.24336 8.26771 8.06209 8.31626 7.97907 8.45774L7.59837 9.10648C7.51371 9.25075 7.56339 9.4364 7.7088 9.51909L7.98137 9.6741C8.09379 9.73804 8.15034 9.86668 8.13776 9.99539C8.13137 10.0609 8.128 10.1272 8.128 10.1944C8.128 10.261 8.13113 10.327 8.13732 10.392C8.14964 10.5215 8.09309 10.6512 7.98002 10.7155L7.7088 10.8698C7.56339 10.9524 7.51371 11.1381 7.59837 11.2824L7.97907 11.9311C8.06209 12.0726 8.24336 12.1211 8.38599 12.0401L8.67049 11.8785C8.78097 11.8157 8.91785 11.8311 9.02166 11.9044C9.13381 11.9835 9.25405 12.0523 9.38108 12.1093C9.49887 12.1621 9.5824 12.2748 9.5824 12.4039V12.7119C9.5824 12.8776 9.71671 13.0119 9.8824 13.0119H10.6518C10.8175 13.0119 10.9518 12.8776 10.9518 12.7119V12.4043C10.9518 12.275 11.0356 12.1622 11.1536 12.1093C11.2803 12.0524 11.4005 11.9836 11.5126 11.9044C11.6164 11.8311 11.7533 11.8157 11.8637 11.8785L12.1482 12.0401C12.2909 12.1211 12.4721 12.0726 12.5552 11.9311L12.9359 11.2824C13.0205 11.1381 12.9708 10.9524 12.8254 10.8698L12.5542 10.7155C12.4411 10.6512 12.3846 10.5215 12.3969 10.392C12.4031 10.327 12.4062 10.261 12.4062 10.1944Z" stroke="#262E30" stroke-width="0.5" stroke-miterlimit="10"/>
|
||||
<path d="M9.56905 6.10587L10.5676 5.53883C10.7132 5.45618 10.763 5.27041 10.6782 5.12607L9.78954 3.61226C9.70652 3.47084 9.52532 3.42229 9.38271 3.50326L8.55924 3.97078C8.4488 4.03348 8.31157 4.01889 8.21097 3.94139C7.93891 3.7318 7.6364 3.55866 7.31102 3.42913C7.191 3.38136 7.10783 3.2678 7.10783 3.13862V2.21797C7.10783 2.05228 6.97352 1.91797 6.80783 1.91797H5.02369C4.85801 1.91797 4.72369 2.05228 4.72369 2.21797V3.13785C4.72369 3.26702 4.64052 3.38058 4.5205 3.42836C4.19512 3.55789 3.89262 3.73103 3.62056 3.94061C3.51995 4.01812 3.38272 4.03271 3.27228 3.97001L2.44889 3.50253C2.30625 3.42154 2.12501 3.47013 2.04201 3.61161L1.15396 5.12533C1.06929 5.26967 1.11907 5.45538 1.26458 5.53801L2.07419 5.99774C2.18698 6.06178 2.24458 6.19091 2.22645 6.31934C2.2031 6.48472 2.19089 6.65362 2.19089 6.82552C2.19089 6.99742 2.2031 7.16632 2.22645 7.3317C2.24458 7.46013 2.18698 7.58926 2.07419 7.6533L1.26466 8.11299C1.11911 8.19564 1.06935 8.3814 1.15408 8.52574L2.04277 10.0395C2.12579 10.181 2.30699 10.2295 2.4496 10.1486L3.27307 9.68103C3.3835 9.61833 3.52074 9.63292 3.62134 9.71043C3.8934 9.92001 4.1959 10.0932 4.52129 10.2227C4.64131 10.2705 4.72448 10.384 4.72448 10.5132V11.4331C4.72448 11.5988 4.85879 11.7331 5.02448 11.7331H6.43294" stroke="#262E30" stroke-width="0.5" stroke-miterlimit="10"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1018_9532">
|
||||
<rect width="14" height="14" fill="white" transform="translate(0 14) rotate(-90)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M10.2,13.8A20.875,20.875,0,0,1,6.376,8.5C4.305,4.673,3.353,1.124,4.25.572" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/><path d="M1.781,6.381A18.541,18.541,0,0,1,8,5.5c4.142,0,7.5.9,7.5,2" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/><path d="M12.017,2.314A21.814,21.814,0,0,1,9.624,8.5c-2.071,3.826-4.477,6.48-5.374,5.927" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/><path d="M15.5,7.5c0,1.1-3.358,2-7.5,2S.5,8.6.5,7.5c0-.414.472-.8,1.281-1.118" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/><path d="M4.25,14.426c-.9-.552.055-4.1,2.126-7.927S10.853.02,11.75.572c.336.207.413.835.267,1.742" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/><path d="M4.25.572c.9-.552,3.3,2.1,5.374,5.927s3.023,7.375,2.126,7.927c-.336.207-.885-.036-1.548-.624" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/><circle cx="12" cy="2.804" r="1" style="fill:#009688;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/><circle cx="9.6" cy="13.196" r="1" style="fill:#009688;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/><circle cx="2.5" cy="6.499" r="1" style="fill:#009688;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/></svg>
|
||||
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 1.4 KiB |
|
|
@ -1,7 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16px" height="16px">
|
||||
<path fill="#009688" d="m 7,14 c 0,0 0,1 1,1 1,0 1,-1 1,-1 V 2 C 9,2 9,1 8,1 7,1 7,2 7,2 Z"/>
|
||||
<path fill="#808080" d="M 3,3 H 13 V 4 H 3 Z" />
|
||||
<path fill="#808080" d="m 3.5,9 h 9 v 1 h -9 z" />
|
||||
<path fill="#808080" d="m 5.5,6 h 5 v 1 h -5 z" />
|
||||
<path fill="#808080" d="m 4,12 h 8 v 1 H 4 Z" />
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><line x1="1.5" y1="1.5" x2="13.5" y2="1.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/><line x1="3.5" y1="5.5" x2="11.5" y2="5.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/><line x1="1.5" y1="9.5" x2="13.5" y2="9.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/><line x1="4.5" y1="13.5" x2="10.5" y2="13.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/></svg>
|
||||
|
Before Width: | Height: | Size: 389 B After Width: | Height: | Size: 575 B |
|
|
@ -1,7 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16px" height="16px">
|
||||
<path fill="#009688" d="m 1,14 c 0,0 0,1 1,1 1,0 1,-1 1,-1 V 2 C 3,2 3,1 2,1 1,1 1,2 1,2 Z" />
|
||||
<path fill="#808080" d="M 2,3 H 12 V 4 H 2 Z" />
|
||||
<path fill="#808080" d="m 2,9 h 9 v 1 H 2 Z" />
|
||||
<path fill="#808080" d="M 2,6 H 7 V 7 H 2 Z" />
|
||||
<path fill="#808080" d="m 2,12 h 8 v 1 H 2 Z" />
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><line x1="1.5" y1="1.5" x2="13.5" y2="1.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/><line x1="1.5" y1="5.5" x2="11.5" y2="5.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/><line x1="1.5" y1="9.5" x2="12.5" y2="9.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/><line x1="1.5" y1="13.5" x2="7.5" y2="13.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/></svg>
|
||||
|
Before Width: | Height: | Size: 383 B After Width: | Height: | Size: 574 B |
|
|
@ -1,7 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16px" height="16px">
|
||||
<path fill="#009688" d="m 15,14 c 0,0 0,1 -1,1 -1,0 -1,-1 -1,-1 V 2 c 0,0 0,-1 1,-1 1,0 1,1 1,1 z" />
|
||||
<path fill="#808080" d="M 14,3 H 4 v 1 h 10 z" />
|
||||
<path fill="#808080" d="M 14,9 H 5 v 1 h 9 z" />
|
||||
<path fill="#808080" d="M 14,6 H 9 v 1 h 5 z" />
|
||||
<path fill="#808080" d="M 14,12 H 6 v 1 h 8 z" />
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><line x1="1.5" y1="1.5" x2="13.5" y2="1.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/><line x1="3.5" y1="5.5" x2="13.5" y2="5.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/><line x1="2.5" y1="9.5" x2="13.5" y2="9.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/><line x1="7.5" y1="13.5" x2="13.5" y2="13.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/></svg>
|
||||
|
Before Width: | Height: | Size: 395 B After Width: | Height: | Size: 575 B |
|
|
@ -1,60 +1 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
viewBox="0 0 16 16"
|
||||
width="16px"
|
||||
height="16px"
|
||||
version="1.1"
|
||||
id="svg12"
|
||||
sodipodi:docname="vertic_bottom.svg"
|
||||
inkscape:version="1.2 (dc2aedaf03, 2022-05-15)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs16" />
|
||||
<sodipodi:namedview
|
||||
id="namedview14"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="true"
|
||||
inkscape:zoom="41.7193"
|
||||
inkscape:cx="12.356391"
|
||||
inkscape:cy="8.5092511"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1129"
|
||||
inkscape:window-x="1912"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg12">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid299" />
|
||||
</sodipodi:namedview>
|
||||
<path
|
||||
fill="#009688"
|
||||
d="M 2,11 C 2,11 1,11 1,12.5 1,14 2,14 2,14 h 12 c 0,0 1,0 1,-1.5 C 15,11 14,11 14,11 Z"
|
||||
id="path2"
|
||||
style="stroke-width:1.22474" />
|
||||
<path
|
||||
fill="#808080"
|
||||
d="M 3,3 H 13 V 4 H 3 Z"
|
||||
id="path4" />
|
||||
<path
|
||||
fill="#808080"
|
||||
d="M 3,6 H 13 V 7 H 3 Z"
|
||||
id="path301" />
|
||||
<path
|
||||
fill="#808080"
|
||||
d="m 3,9 h 10 v 1 H 3 Z"
|
||||
id="path303" />
|
||||
<path
|
||||
fill="#808080"
|
||||
d="m 3,12 h 10 v 1 H 3 Z"
|
||||
id="path305" />
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><line x1="1.5" y1="5.5" x2="13.5" y2="5.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/><line x1="3.5" y1="9.5" x2="11.5" y2="9.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/><line x1="1.5" y1="13.5" x2="13.5" y2="13.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 454 B |
|
|
@ -1,60 +1 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
viewBox="0 0 16 16"
|
||||
width="16px"
|
||||
height="16px"
|
||||
version="1.1"
|
||||
id="svg12"
|
||||
sodipodi:docname="vertic_center.svg"
|
||||
inkscape:version="1.2 (dc2aedaf03, 2022-05-15)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs16" />
|
||||
<sodipodi:namedview
|
||||
id="namedview14"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="true"
|
||||
inkscape:zoom="41.7193"
|
||||
inkscape:cx="12.356391"
|
||||
inkscape:cy="8.5092511"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1129"
|
||||
inkscape:window-x="1912"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg12">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid299" />
|
||||
</sodipodi:namedview>
|
||||
<path
|
||||
fill="#009688"
|
||||
d="m 2,6.5 c 0,0 -1,0 -1,1.5 0,1.5 1,1.5 1,1.5 h 12 c 0,0 1,0 1,-1.5 0,-1.5 -1,-1.5 -1,-1.5 z"
|
||||
id="path2"
|
||||
style="stroke-width:1.22474" />
|
||||
<path
|
||||
fill="#808080"
|
||||
d="M 3,3 H 13 V 4 H 3 Z"
|
||||
id="path4" />
|
||||
<path
|
||||
fill="#808080"
|
||||
d="M 3,6 H 13 V 7 H 3 Z"
|
||||
id="path301" />
|
||||
<path
|
||||
fill="#808080"
|
||||
d="m 3,9 h 10 v 1 H 3 Z"
|
||||
id="path303" />
|
||||
<path
|
||||
fill="#808080"
|
||||
d="m 3,12 h 10 v 1 H 3 Z"
|
||||
id="path305" />
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><line x1="1.5" y1="3.5" x2="13.5" y2="3.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/><line x1="3.5" y1="7.5" x2="11.5" y2="7.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/><line x1="1.5" y1="11.5" x2="13.5" y2="11.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 454 B |
|
|
@ -1,60 +1 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
viewBox="0 0 16 16"
|
||||
width="16px"
|
||||
height="16px"
|
||||
version="1.1"
|
||||
id="svg12"
|
||||
sodipodi:docname="vertic_top.svg"
|
||||
inkscape:version="1.2 (dc2aedaf03, 2022-05-15)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs16" />
|
||||
<sodipodi:namedview
|
||||
id="namedview14"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="true"
|
||||
inkscape:zoom="41.7193"
|
||||
inkscape:cx="12.356391"
|
||||
inkscape:cy="8.5092511"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1129"
|
||||
inkscape:window-x="1912"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg12">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid299" />
|
||||
</sodipodi:namedview>
|
||||
<path
|
||||
fill="#009688"
|
||||
d="M 2,2 C 2,2 1,2 1,3.5 1,5 2,5 2,5 H 14 C 14,5 15,5 15,3.5 15,2 14,2 14,2 Z"
|
||||
id="path2"
|
||||
style="stroke-width:1.22474" />
|
||||
<path
|
||||
fill="#808080"
|
||||
d="M 3,3 H 13 V 4 H 3 Z"
|
||||
id="path4" />
|
||||
<path
|
||||
fill="#808080"
|
||||
d="M 3,6 H 13 V 7 H 3 Z"
|
||||
id="path301" />
|
||||
<path
|
||||
fill="#808080"
|
||||
d="m 3,9 h 10 v 1 H 3 Z"
|
||||
id="path303" />
|
||||
<path
|
||||
fill="#808080"
|
||||
d="m 3,12 h 10 v 1 H 3 Z"
|
||||
id="path305" />
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><line x1="1.5" y1="1.5" x2="13.5" y2="1.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/><line x1="3.5" y1="5.5" x2="11.5" y2="5.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/><line x1="1.5" y1="9.5" x2="13.5" y2="9.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 452 B |
|
|
@ -1,3 +1 @@
|
|||
<svg width="26" height="11" viewBox="0 0 26 11" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M25.0877 5.97153C25.3595 5.69978 25.3595 5.2592 25.0877 4.98746L20.6594 0.55913C20.3877 0.287386 19.9471 0.287386 19.6753 0.55913C19.4036 0.830875 19.4036 1.27146 19.6753 1.5432L23.6116 5.47949L19.6753 9.41578C19.4036 9.68753 19.4036 10.1281 19.6753 10.3999C19.9471 10.6716 20.3877 10.6716 20.6594 10.3999L25.0877 5.97153ZM0.90332 6.17534H24.5957V4.78365H0.90332V6.17534Z" fill="#009688"/>
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="8" viewBox="0 0 20 8"><line x1="0.5" y1="3.5" x2="19.5" y2="3.5" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/><polyline points="16.5 6.5 19.5 3.5 16.5 0.5" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/></svg>
|
||||
|
Before Width: | Height: | Size: 502 B After Width: | Height: | Size: 330 B |
|
|
@ -1,8 +1 @@
|
|||
<svg width="13" height="15" xmlns="http://www.w3.org/2000/svg" fill="none">
|
||||
|
||||
<g>
|
||||
<title>Layer 1</title>
|
||||
<path id="svg_1" fill="#323A3D" d="m1.06437,9.28011l0.01103,2.11179l2.13978,0.0108l-2.15081,-2.12259zm0.0114,0.01023l2.12876,2.10086l9.40197,-9.27883l-2.1287,-2.10086l-9.40203,9.27883z" clip-rule="evenodd" fill-rule="evenodd"/>
|
||||
<line id="svg_2" stroke-linecap="round" stroke-width="2" stroke="#323A3D" y2="13.4785" x2="12" y1="13.4785" x1="2.05957"/>
|
||||
</g>
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="13" height="15" viewBox="0 0 13 15"><path d="M1.5,9.5v2h2l8.586-8.586a1.414,1.414,0,0,0-2-2Z" style="fill:none;stroke:#949494;stroke-linecap:square;stroke-linejoin:round"/><line x1="1.5" y1="14.5" x2="12.5" y2="14.5" style="fill:none;stroke:#949494;stroke-linecap:square;stroke-linejoin:round"/></svg>
|
||||
|
Before Width: | Height: | Size: 474 B After Width: | Height: | Size: 348 B |
|
|
@ -1,4 +1 @@
|
|||
<svg width="13" height="15" viewBox="0 0 13 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.06444 9.28005L1.07547 11.3918L3.21526 11.4027L1.06444 9.28005ZM1.07569 9.28988L3.20445 11.3907L12.6065 2.11192L10.4777 0.011054L1.07569 9.28988Z" fill="white"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.05957 13.4785C1.05957 12.9262 1.50729 12.4785 2.05957 12.4785H12C12.5523 12.4785 13 12.9262 13 13.4785C13 14.0308 12.5523 14.4785 12 14.4785H2.05957C1.50729 14.4785 1.05957 14.0308 1.05957 13.4785Z" fill="white"/>
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="13" height="15" viewBox="0 0 13 15"><path d="M1.5,9.5v2h2l8.586-8.586a1.414,1.414,0,0,0-2-2Z" style="fill:none;stroke:#949494;stroke-linecap:square;stroke-linejoin:round"/><line x1="1.5" y1="14.5" x2="12.5" y2="14.5" style="fill:none;stroke:#949494;stroke-linecap:square;stroke-linejoin:round"/></svg>
|
||||
|
Before Width: | Height: | Size: 582 B After Width: | Height: | Size: 348 B |
|
|
@ -1,3 +1 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.10031 1.86719C2.27188 1.86719 1.60031 2.53877 1.60031 3.36719V9.01149C0.843171 9.08758 0.252106 9.72671 0.252106 10.5039V15.6221C0.252106 16.4506 0.923676 17.1221 1.7521 17.1221H9.05122C10.1743 18.3923 11.8161 19.1931 13.6449 19.1931C17.0303 19.1931 19.7747 16.4487 19.7747 13.0633C19.7747 10.6147 18.339 8.50146 16.2634 7.51942V3.36719C16.2634 2.53877 15.5918 1.86719 14.7634 1.86719H3.10031ZM15.2634 7.14953V3.36719C15.2634 3.09105 15.0395 2.86719 14.7634 2.86719H3.10031C2.82417 2.86719 2.60031 3.09105 2.60031 3.36719V9.00377H3.15292V3.96484H5.79236H6.79239H8.43182H9.43183H11.0713H12.0713H14.7107V7.02592C14.898 7.05876 15.0824 7.1001 15.2634 7.14953ZM13.7107 6.93394V4.96484H12.0713V7.13745C12.5735 7.00446 13.1009 6.93359 13.6449 6.93359C13.6669 6.93359 13.6888 6.93371 13.7107 6.93394ZM11.0713 7.49841V4.96484H9.43182L9.43183 8.61091C9.91152 8.15685 10.4645 7.77947 11.0713 7.49841ZM8.3317 10.0045H5.79236V10.0045H3.15292V10.0039H1.75211C1.47596 10.0039 1.25211 10.2278 1.25211 10.5039V15.6221C1.25211 15.8983 1.47596 16.1221 1.7521 16.1221H8.33162C7.81228 15.2219 7.51514 14.1773 7.51514 13.0633C7.51514 11.9493 7.81231 10.9047 8.3317 10.0045ZM8.43183 4.96484V9.00377H6.79239V4.96484H8.43183ZM5.79236 4.96484H4.15292V9.00377H5.79236V4.96484ZM18.7747 13.0633C18.7747 15.8964 16.478 18.1931 13.6449 18.1931C10.8118 18.1931 8.51514 15.8964 8.51514 13.0633C8.51514 10.2302 10.8118 7.93359 13.6449 7.93359C16.478 7.93359 18.7747 10.2302 18.7747 13.0633ZM14.455 10.2226C14.6503 10.0273 14.9669 10.0273 15.1621 10.2226L16.6376 11.698C16.7806 11.841 16.8234 12.0561 16.746 12.2429C16.6686 12.4298 16.4863 12.5516 16.284 12.5516H11.0631C10.787 12.5516 10.5631 12.3277 10.5631 12.0516C10.5631 11.7754 10.787 11.5516 11.0631 11.5516H15.0769L14.455 10.9297C14.2598 10.7344 14.2598 10.4178 14.455 10.2226ZM12.1276 15.9053C12.3229 16.1005 12.6395 16.1005 12.8347 15.9053C13.03 15.71 13.03 15.3934 12.8347 15.1982L12.2128 14.5762H16.2266C16.5028 14.5762 16.7266 14.3524 16.7266 14.0762C16.7266 13.8001 16.5028 13.5762 16.2266 13.5762H11.0057C10.8035 13.5762 10.6212 13.6981 10.5438 13.8849C10.4664 14.0717 10.5092 14.2868 10.6522 14.4298L12.1276 15.9053Z" fill="#262E30"/>
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M4.5,14.5h-3a1,1,0,0,1-1-1v-6a1,1,0,0,1,1-1" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/><line x1="3.5" y1="2.5" x2="3.5" y2="6.5" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/><line x1="5.5" y1="2.5" x2="5.5" y2="5.5" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/><line x1="7.5" y1="2.5" x2="7.5" y2="5" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/><line x1="9.5" y1="2.5" x2="9.5" y2="4.5" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/><line x1="11.5" y1="2.5" x2="11.5" y2="4.5" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/><path d="M4.5,6.5h-3v-5a1,1,0,0,1,1-1h10a1,1,0,0,1,1,1v3" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/><circle cx="10.5" cy="10.5" r="4" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/><polyline points="11.5 8.5 12.5 9.5 8.5 9.5" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/><polyline points="12.5 11.5 8.5 11.5 9.5 12.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/></svg>
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
|
@ -1,11 +1 @@
|
|||
<svg width="23" height="21" viewBox="0 0 23 21" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10.4186 11.4644L10.6331 11.916L10.9186 11.7804V11.4644H10.4186ZM14.2992 11.4643H13.7992V11.7803L14.0846 11.9159L14.2992 11.4643ZM10.9186 2.62061C10.9186 1.82516 11.5634 1.18031 12.3589 1.18031V0.180313C11.0111 0.180313 9.91856 1.27287 9.91856 2.62061H10.9186ZM10.9186 11.4644V2.62061H9.91856V11.4644H10.9186ZM8.33162 15.556C8.33162 13.9502 9.27137 12.563 10.6331 11.916L10.204 11.0128C8.50674 11.8191 7.33162 13.5498 7.33162 15.556H8.33162ZM12.359 19.5834C10.1347 19.5834 8.33162 17.7803 8.33162 15.556H7.33162C7.33162 18.3325 9.58245 20.5834 12.359 20.5834V19.5834ZM16.3864 15.556C16.3864 17.7803 14.5832 19.5834 12.359 19.5834V20.5834C15.1355 20.5834 17.3864 18.3325 17.3864 15.556H16.3864ZM14.0846 11.9159C15.4465 12.5628 16.3864 13.9501 16.3864 15.556H17.3864C17.3864 13.5497 16.2111 11.8189 14.5137 11.0126L14.0846 11.9159ZM13.7992 2.62061V11.4643H14.7992V2.62061H13.7992ZM12.3589 1.18031C13.1543 1.18031 13.7992 1.82516 13.7992 2.62061H14.7992C14.7992 1.27287 13.7066 0.180313 12.3589 0.180313V1.18031Z" fill="#898989"/>
|
||||
<path d="M0.867188 10.1649C0.867188 8.7096 2.95484 4.06187 3.55999 4.0619C4.16514 4.06194 6.16206 8.91731 6.16206 10.1649C6.16206 11.4124 5.36822 13.1388 3.55999 13.1388C1.75176 13.1388 0.867188 11.6201 0.867188 10.1649Z" stroke="#898989"/>
|
||||
<path d="M2.5942 9.42411C2.51069 9.88791 2.56102 10.9332 3.43038 11.4042" stroke="#898989" stroke-linecap="round"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.7103 13.0507L11.7103 3.26757C11.7103 2.91037 11.9999 2.6208 12.3571 2.6208C12.7143 2.6208 13.0038 2.91037 13.0038 3.26757L13.0038 13.0508C14.1196 13.338 14.9439 14.3509 14.9439 15.5563C14.9439 16.9851 13.7857 18.1433 12.3569 18.1433C10.9281 18.1433 9.76981 16.9851 9.76981 15.5563C9.76981 14.3507 10.5944 13.3378 11.7103 13.0507Z" fill="#D01B1B"/>
|
||||
<path d="M22.2685 18.1429H19.0971" stroke="#D01B1B" stroke-linecap="round"/>
|
||||
<path d="M22.2685 14.2625H19.6257" stroke="#C2C2C2" stroke-linecap="round"/>
|
||||
<path d="M22.2685 10.3815L18.5686 10.3815" stroke="#C2C2C2" stroke-linecap="round"/>
|
||||
<path d="M22.2685 6.50107L18.5686 6.50107" stroke="#C2C2C2" stroke-linecap="round"/>
|
||||
<path d="M22.2685 2.62067H18.5686" stroke="#C2C2C2" stroke-linecap="round"/>
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="20" viewBox="0 0 22 20"><path d="M.5,6.5c0-1.443,2.314-6,3-6s3,4.763,3,6a3,3,0,0,1-3,3A2.883,2.883,0,0,1,.5,6.5Z" style="fill:none;stroke:#949494;stroke-linecap:round"/><path d="M2.5,5.5c0,1,0,2,1,2" style="fill:none;stroke:#949494;stroke-linecap:round"/><path d="M21.5,18.5h-3" style="fill:none;stroke:#ed1c24;stroke-linecap:square;stroke-linejoin:round"/><path d="M21.5,14.5h-3" style="fill:none;stroke:#949494;stroke-linecap:square"/><path d="M21.5,10.5h-3" style="fill:none;stroke:#949494;stroke-linecap:square"/><path d="M21.5,6.5h-3" style="fill:none;stroke:#949494;stroke-linecap:square"/><path d="M21.5,2.5h-3" style="fill:none;stroke:#949494;stroke-linecap:square"/><path d="M13.5,9.922V2.5a2,2,0,0,0-2-2h0a2,2,0,0,0-2,2V9.922a5,5,0,1,0,4,0Z" style="fill:none;stroke:#949494;stroke-linecap:round"/><line x1="11.5" y1="3.5" x2="11.5" y2="14.5" style="fill:none;stroke:#ed1c24;stroke-linecap:round;stroke-linejoin:round"/><circle cx="11.5" cy="14.5" r="2.5" style="fill:#ed1c24"/></svg>
|
||||
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 1 KiB |
|
|
@ -1,12 +1 @@
|
|||
<svg width="23" height="21" viewBox="0 0 23 21" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10.457 11.4008L10.6715 11.8524L10.957 11.7168V11.4008H10.457ZM14.3376 11.4006H13.8376V11.7167L14.123 11.8523L14.3376 11.4006ZM10.957 2.557C10.957 1.76154 11.6018 1.1167 12.3973 1.1167V0.116699C11.0495 0.116699 9.95698 1.20926 9.95698 2.557H10.957ZM10.957 11.4008V2.557H9.95698V11.4008H10.957ZM8.37004 15.4924C8.37004 13.8866 9.30979 12.4993 10.6715 11.8524L10.2424 10.9491C8.54516 11.7555 7.37004 13.4862 7.37004 15.4924H8.37004ZM12.3974 19.5198C10.1732 19.5198 8.37004 17.7166 8.37004 15.4924H7.37004C7.37004 18.2689 9.62087 20.5198 12.3974 20.5198V19.5198ZM16.4248 15.4924C16.4248 17.7166 14.6217 19.5198 12.3974 19.5198V20.5198C15.1739 20.5198 17.4248 18.2689 17.4248 15.4924H16.4248ZM14.123 11.8523C15.4849 12.4992 16.4248 13.8865 16.4248 15.4924H17.4248C17.4248 13.4861 16.2495 11.7553 14.5521 10.949L14.123 11.8523ZM13.8376 2.557V11.4006H14.8376V2.557H13.8376ZM12.3973 1.1167C13.1927 1.1167 13.8376 1.76154 13.8376 2.557H14.8376C14.8376 1.20926 13.745 0.116699 12.3973 0.116699V1.1167Z" fill="#898989"/>
|
||||
<path d="M0.905604 10.1012C0.905604 8.64598 2.99326 3.99825 3.5984 3.99829C4.20355 3.99833 6.20048 8.8537 6.20048 10.1012C6.20048 11.3488 5.40664 13.0752 3.5984 13.0752C1.79017 13.0752 0.905604 11.5565 0.905604 10.1012Z" stroke="#898989"/>
|
||||
<path d="M2.63246 9.36085C2.54895 9.82465 2.59928 10.87 3.46864 11.341" stroke="#898989" stroke-linecap="round"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.7481 12.987L11.7481 3.20396C11.7481 2.84676 12.0377 2.55719 12.3949 2.55719C12.7521 2.55719 13.0417 2.84676 13.0417 3.20396L13.0417 12.9871C14.1574 13.2744 14.9818 14.2873 14.9818 15.4927C14.9818 16.9215 13.8235 18.0797 12.3947 18.0797C10.9659 18.0797 9.80765 16.9215 9.80765 15.4927C9.80765 14.2871 10.6322 13.2742 11.7481 12.987Z" fill="#C2C2C2"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.7482 12.9868L11.7482 6.65849C11.7482 6.30129 12.0377 6.01172 12.3949 6.01172C12.7521 6.01172 13.0417 6.30129 13.0417 6.65849L13.0417 12.9869C14.1574 13.2741 14.9818 14.287 14.9818 15.4924C14.9818 16.9212 13.8235 18.0795 12.3947 18.0795C10.9659 18.0795 9.80767 16.9212 9.80767 15.4924C9.80767 14.2869 10.6323 13.2739 11.7482 12.9868Z" fill="#FF6F00"/>
|
||||
<path d="M22.3052 18.0794H19.1338" stroke="#FF6F00" stroke-linecap="round"/>
|
||||
<path d="M22.3052 14.199H19.6624" stroke="#FF6F00" stroke-linecap="round"/>
|
||||
<path d="M22.3052 10.318L18.6053 10.318" stroke="#C2C2C2" stroke-linecap="round"/>
|
||||
<path d="M22.3052 6.43759L18.6053 6.43759" stroke="#C2C2C2" stroke-linecap="round"/>
|
||||
<path d="M22.3052 2.55719H18.6053" stroke="#C2C2C2" stroke-linecap="round"/>
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="20" viewBox="0 0 22 20"><line x1="11.5" y1="3.5" x2="11.5" y2="14.5" style="fill:none;stroke:#949494;stroke-linecap:round;opacity:0.5"/><path d="M.5,6.5c0-1.443,2.314-6,3-6s3,4.763,3,6a3,3,0,0,1-3,3A2.883,2.883,0,0,1,.5,6.5Z" style="fill:none;stroke:#949494;stroke-linecap:round"/><path d="M2.5,5.5c0,1,0,2,1,2" style="fill:none;stroke:#949494;stroke-linecap:round"/><path d="M21.5,18.5h-3" style="fill:none;stroke:#ff6f00;stroke-linecap:square;stroke-miterlimit:10"/><path d="M21.5,14.5h-3" style="fill:none;stroke:#ff6f00;stroke-linecap:square;stroke-miterlimit:10"/><path d="M21.5,10.5h-3" style="fill:none;stroke:#949494;stroke-linecap:square"/><path d="M21.5,6.5h-3" style="fill:none;stroke:#949494;stroke-linecap:square"/><path d="M21.5,2.5h-3" style="fill:none;stroke:#949494;stroke-linecap:square"/><path d="M13.5,9.922V2.5a2,2,0,0,0-2-2h0a2,2,0,0,0-2,2V9.922a5,5,0,1,0,4,0Z" style="fill:none;stroke:#949494;stroke-linecap:round"/><line x1="11.5" y1="5.5" x2="11.5" y2="14.5" style="fill:none;stroke:#ff6f00;stroke-linecap:round;stroke-miterlimit:10"/><circle cx="11.5" cy="14.5" r="2.5" style="fill:#ff6f00"/></svg>
|
||||
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.2 KiB |
|
|
@ -1,12 +1 @@
|
|||
<svg width="23" height="21" viewBox="0 0 23 21" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10.4954 11.4008L10.71 11.8524L10.9954 11.7168V11.4008H10.4954ZM14.376 11.4006H13.876V11.7167L14.1615 11.8523L14.376 11.4006ZM10.9954 2.557C10.9954 1.76154 11.6402 1.1167 12.4357 1.1167V0.116699C11.088 0.116699 9.99539 1.20926 9.99539 2.557H10.9954ZM10.9954 11.4008V2.557H9.99539V11.4008H10.9954ZM8.40845 15.4924C8.40845 13.8866 9.34821 12.4993 10.71 11.8524L10.2808 10.9491C8.58358 11.7555 7.40845 13.4862 7.40845 15.4924H8.40845ZM12.4358 19.5198C10.2116 19.5198 8.40845 17.7166 8.40845 15.4924H7.40845C7.40845 18.2689 9.65928 20.5198 12.4358 20.5198V19.5198ZM16.4632 15.4924C16.4632 17.7166 14.6601 19.5198 12.4358 19.5198V20.5198C15.2124 20.5198 17.4632 18.2689 17.4632 15.4924H16.4632ZM14.1615 11.8523C15.5233 12.4992 16.4632 13.8865 16.4632 15.4924H17.4632C17.4632 13.4861 16.2879 11.7553 14.5905 10.949L14.1615 11.8523ZM13.876 2.557V11.4006H14.876V2.557H13.876ZM12.4357 1.1167C13.2311 1.1167 13.876 1.76154 13.876 2.557H14.876C14.876 1.20926 13.7834 0.116699 12.4357 0.116699V1.1167Z" fill="#898989"/>
|
||||
<path d="M0.944021 10.1012C0.944021 8.64598 3.03167 3.99825 3.63682 3.99829C4.24197 3.99833 6.2389 8.8537 6.2389 10.1012C6.2389 11.3488 5.44505 13.0752 3.63682 13.0752C1.82859 13.0752 0.944021 11.5565 0.944021 10.1012Z" stroke="#898989"/>
|
||||
<path d="M2.67121 9.36085C2.5877 9.82465 2.63803 10.87 3.50739 11.341" stroke="#898989" stroke-linecap="round"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.7917 12.987L11.7917 3.20396C11.7917 2.84676 12.0813 2.55719 12.4385 2.55719C12.7957 2.55719 13.0853 2.84676 13.0853 3.20396L13.0853 12.9871C14.201 13.2744 15.0254 14.2873 15.0254 15.4927C15.0254 16.9215 13.8671 18.0797 12.4383 18.0797C11.0095 18.0797 9.85125 16.9215 9.85125 15.4927C9.85125 14.2871 10.6758 13.2742 11.7917 12.987Z" fill="#C2C2C2"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.7918 12.9866L11.7917 10.4389C11.7917 10.0817 12.0813 9.79208 12.4385 9.79208C12.7957 9.79208 13.0853 10.0817 13.0853 10.4389L13.0853 12.9867C14.201 13.2739 15.0254 14.2868 15.0254 15.4922C15.0254 16.921 13.8671 18.0793 12.4383 18.0793C11.0095 18.0793 9.85125 16.921 9.85125 15.4922C9.85125 14.2867 10.6758 13.2737 11.7918 12.9866Z" fill="#009688"/>
|
||||
<path d="M22.35 18.0794H19.1786" stroke="#009688" stroke-linecap="round"/>
|
||||
<path d="M22.35 14.199H19.7071" stroke="#009688" stroke-linecap="round"/>
|
||||
<path d="M22.35 10.318L18.65 10.318" stroke="#009688" stroke-linecap="round"/>
|
||||
<path d="M22.35 6.43759L18.65 6.43759" stroke="#C2C2C2" stroke-linecap="round"/>
|
||||
<path d="M22.35 2.55719H18.65" stroke="#C2C2C2" stroke-linecap="round"/>
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="20" viewBox="0 0 22 20"><line x1="11.5" y1="3.5" x2="11.5" y2="14.5" style="fill:none;stroke:#949494;stroke-linecap:round;opacity:0.5"/><path d="M.5,6.5c0-1.443,2.314-6,3-6s3,4.763,3,6a3,3,0,0,1-3,3A2.883,2.883,0,0,1,.5,6.5Z" style="fill:none;stroke:#949494;stroke-linecap:round"/><path d="M2.5,5.5c0,1,0,2,1,2" style="fill:none;stroke:#949494;stroke-linecap:round"/><path d="M21.5,18.5h-3" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-miterlimit:10"/><path d="M21.5,14.5h-3" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-miterlimit:10"/><path d="M21.5,10.5h-3" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-miterlimit:10"/><path d="M21.5,6.5h-3" style="fill:none;stroke:#949494;stroke-linecap:square"/><path d="M21.5,2.5h-3" style="fill:none;stroke:#949494;stroke-linecap:square"/><path d="M13.5,9.922V2.5a2,2,0,0,0-2-2h0a2,2,0,0,0-2,2V9.922a5,5,0,1,0,4,0Z" style="fill:none;stroke:#949494;stroke-linecap:round"/><line x1="11.5" y1="7.5" x2="11.5" y2="14.5" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-miterlimit:10"/><circle cx="11.5" cy="14.5" r="2.5" style="fill:#009688"/></svg>
|
||||
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.2 KiB |
|
|
@ -1,12 +1 @@
|
|||
<svg width="23" height="21" viewBox="0 0 23 21" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10.3205 11.4008L10.5351 11.8524L10.8205 11.7168V11.4008H10.3205ZM14.2011 11.4006H13.7011V11.7167L13.9866 11.8523L14.2011 11.4006ZM10.8205 2.557C10.8205 1.76154 11.4653 1.1167 12.2608 1.1167V0.116699C10.9131 0.116699 9.8205 1.20926 9.8205 2.557H10.8205ZM10.8205 11.4008V2.557H9.8205V11.4008H10.8205ZM8.23356 15.4924C8.23356 13.8866 9.17331 12.4993 10.5351 11.8524L10.1059 10.9491C8.40868 11.7555 7.23356 13.4862 7.23356 15.4924H8.23356ZM12.2609 19.5198C10.0367 19.5198 8.23356 17.7166 8.23356 15.4924H7.23356C7.23356 18.2689 9.48439 20.5198 12.2609 20.5198V19.5198ZM16.2883 15.4924C16.2883 17.7166 14.4852 19.5198 12.2609 19.5198V20.5198C15.0375 20.5198 17.2883 18.2689 17.2883 15.4924H16.2883ZM13.9866 11.8523C15.3484 12.4992 16.2883 13.8865 16.2883 15.4924H17.2883C17.2883 13.4861 16.113 11.7553 14.4156 10.949L13.9866 11.8523ZM13.7011 2.557V11.4006H14.7011V2.557H13.7011ZM12.2608 1.1167C13.0563 1.1167 13.7011 1.76154 13.7011 2.557H14.7011C14.7011 1.20926 13.6085 0.116699 12.2608 0.116699V1.1167Z" fill="#898989"/>
|
||||
<path d="M0.769127 10.1012C0.769127 8.64598 2.85678 3.99825 3.46193 3.99829C4.06708 3.99833 6.064 8.8537 6.064 10.1012C6.064 11.3488 5.27016 13.0752 3.46193 13.0752C1.6537 13.0752 0.769127 11.5565 0.769127 10.1012Z" stroke="#898989"/>
|
||||
<path d="M2.49622 9.36085C2.41272 9.82465 2.46305 10.87 3.33241 11.341" stroke="#898989" stroke-linecap="round"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.6122 12.987L11.6122 3.20396C11.6122 2.84676 11.9018 2.55719 12.259 2.55719C12.6162 2.55719 12.9058 2.84676 12.9058 3.20396L12.9058 12.9871C14.0215 13.2744 14.8459 14.2873 14.8459 15.4927C14.8459 16.9215 13.6876 18.0797 12.2588 18.0797C10.83 18.0797 9.67175 16.9215 9.67175 15.4927C9.67175 14.2871 10.4963 13.2742 11.6122 12.987Z" fill="#C2C2C2"/>
|
||||
<path d="M14.8459 15.4926C14.8459 16.9214 13.6876 18.0797 12.2588 18.0797C10.83 18.0797 9.67175 16.9214 9.67175 15.4926C9.67175 14.0638 10.83 12.9055 12.2588 12.9055C13.6876 12.9055 14.8459 14.0638 14.8459 15.4926Z" fill="#009688"/>
|
||||
<path d="M22.1734 18.0794H19.002" stroke="#009688" stroke-linecap="round"/>
|
||||
<path d="M22.1734 14.199H19.5305" stroke="#009688" stroke-linecap="round"/>
|
||||
<path d="M22.1734 10.318L18.4734 10.318" stroke="#009688" stroke-linecap="round"/>
|
||||
<path d="M22.1734 6.43759L18.4734 6.43759" stroke="#009688" stroke-linecap="round"/>
|
||||
<path d="M22.1734 2.55719H18.4734" stroke="#C2C2C2" stroke-linecap="round"/>
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="20" viewBox="0 0 22 20"><line x1="11.5" y1="3.5" x2="11.5" y2="14.5" style="fill:none;stroke:#949494;stroke-linecap:round;opacity:0.5"/><path d="M.5,6.5c0-1.443,2.314-6,3-6s3,4.763,3,6a3,3,0,0,1-3,3A2.883,2.883,0,0,1,.5,6.5Z" style="fill:none;stroke:#949494;stroke-linecap:round"/><path d="M2.5,5.5c0,1,0,2,1,2" style="fill:none;stroke:#949494;stroke-linecap:round"/><path d="M21.5,18.5h-3" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-miterlimit:10"/><path d="M21.5,14.5h-3" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-miterlimit:10"/><path d="M21.5,10.5h-3" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-miterlimit:10"/><path d="M21.5,6.5h-3" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-miterlimit:10"/><path d="M21.5,2.5h-3" style="fill:none;stroke:#949494;stroke-linecap:square"/><path d="M13.5,9.922V2.5a2,2,0,0,0-2-2h0a2,2,0,0,0-2,2V9.922a5,5,0,1,0,4,0Z" style="fill:none;stroke:#949494;stroke-linecap:round"/><line x1="11.5" y1="10.5" x2="11.5" y2="14.5" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-miterlimit:10"/><circle cx="11.5" cy="14.5" r="2.5" style="fill:#009688"/></svg>
|
||||
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 1.2 KiB |
|
|
@ -1,12 +1 @@
|
|||
<svg width="23" height="21" viewBox="0 0 23 21" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M10.2441 11.4008L10.4587 11.8524L10.7441 11.7168V11.4008H10.2441ZM14.1247 11.4006H13.6247V11.7167L13.9102 11.8523L14.1247 11.4006ZM10.7441 2.557C10.7441 1.76154 11.3889 1.1167 12.1844 1.1167V0.116699C10.8367 0.116699 9.7441 1.20926 9.7441 2.557H10.7441ZM10.7441 11.4008V2.557H9.7441V11.4008H10.7441ZM8.15717 15.4924C8.15717 13.8866 9.09692 12.4993 10.4587 11.8524L10.0295 10.9491C8.33229 11.7555 7.15717 13.4862 7.15717 15.4924H8.15717ZM12.1845 19.5198C9.96028 19.5198 8.15717 17.7166 8.15717 15.4924H7.15717C7.15717 18.2689 9.40799 20.5198 12.1845 20.5198V19.5198ZM16.2119 15.4924C16.2119 17.7166 14.4088 19.5198 12.1845 19.5198V20.5198C14.9611 20.5198 17.2119 18.2689 17.2119 15.4924H16.2119ZM13.9102 11.8523C15.272 12.4992 16.2119 13.8865 16.2119 15.4924H17.2119C17.2119 13.4861 16.0366 11.7553 14.3392 10.949L13.9102 11.8523ZM13.6247 2.557V11.4006H14.6247V2.557H13.6247ZM12.1844 1.1167C12.9799 1.1167 13.6247 1.76154 13.6247 2.557H14.6247C14.6247 1.20926 13.5321 0.116699 12.1844 0.116699V1.1167Z" fill="#898989"/>
|
||||
<path d="M0.693306 10.1012C0.693306 8.64598 2.78096 3.99825 3.38611 3.99829C3.99126 3.99833 5.98818 8.8537 5.98818 10.1012C5.98818 11.3488 5.19434 13.0752 3.38611 13.0752C1.57788 13.0752 0.693306 11.5565 0.693306 10.1012Z" stroke="#898989"/>
|
||||
<path d="M2.42027 9.36085C2.33676 9.82465 2.38709 10.87 3.25645 11.341" stroke="#898989" stroke-linecap="round"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.5364 12.987L11.5364 3.20396C11.5364 2.84676 11.826 2.55719 12.1832 2.55719C12.5404 2.55719 12.8299 2.84676 12.8299 3.20396L12.8299 12.9871C13.9457 13.2744 14.7701 14.2873 14.7701 15.4927C14.7701 16.9215 13.6118 18.0797 12.183 18.0797C10.7542 18.0797 9.59592 16.9215 9.59592 15.4927C9.59592 14.2871 10.4205 13.2742 11.5364 12.987Z" fill="#C2C2C2"/>
|
||||
<path d="M14.7701 15.4922C14.7701 16.921 13.6118 18.0793 12.183 18.0793C10.7542 18.0793 9.59592 16.921 9.59592 15.4922C9.59592 14.9864 10.3621 15.8152 11.7909 15.8152C13.2197 15.8152 14.7701 14.0635 14.7701 15.4922Z" fill="#009688"/>
|
||||
<path d="M22.0947 18.0794H18.9233" stroke="#009688" stroke-linecap="round"/>
|
||||
<path d="M22.0947 14.199H19.4518" stroke="#009688" stroke-linecap="round"/>
|
||||
<path d="M22.0947 10.318L18.3947 10.318" stroke="#009688" stroke-linecap="round"/>
|
||||
<path d="M22.0947 6.43759L18.3947 6.43759" stroke="#009688" stroke-linecap="round"/>
|
||||
<path d="M22.0947 2.55719H18.3947" stroke="#009688" stroke-linecap="round"/>
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="20" viewBox="0 0 22 20"><path d="M.5,6.5c0-1.443,2.314-6,3-6s3,4.763,3,6a3,3,0,0,1-3,3A2.883,2.883,0,0,1,.5,6.5Z" style="fill:none;stroke:#949494;stroke-linecap:round"/><path d="M2.5,5.5c0,1,0,2,1,2" style="fill:none;stroke:#949494;stroke-linecap:round"/><path d="M21.5,18.5h-3" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-miterlimit:10"/><path d="M21.5,14.5h-3" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-miterlimit:10"/><path d="M21.5,10.5h-3" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-miterlimit:10"/><path d="M21.5,6.5h-3" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-miterlimit:10"/><path d="M21.5,2.5h-3" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-miterlimit:10"/><path d="M13.5,9.922V2.5a2,2,0,0,0-2-2h0a2,2,0,0,0-2,2V9.922a5,5,0,1,0,4,0Z" style="fill:none;stroke:#949494;stroke-linecap:round"/><path d="M9,14.5a2.5,2.5,0,0,0,5,0,2.577,2.577,0,0,0-.05-.5H9.05A2.577,2.577,0,0,0,9,14.5Z" style="fill:#009688"/><path d="M12,12.055V3.5a.5.5,0,0,0-1,0v8.555A2.5,2.5,0,0,0,9.05,14h4.9A2.5,2.5,0,0,0,12,12.055Z" style="fill:#949494;opacity:0.5"/></svg>
|
||||
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 1.2 KiB |
|
|
@ -1,16 +1 @@
|
|||
<svg width="128" height="149" viewBox="0 0 128 149" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M82.7793 43.5141L79.8925 40.6274L82.7793 37.7406L85.666 40.6274L82.7793 43.5141ZM127.994 92.228L125.107 95.1148L122.221 92.228L125.107 89.3413L127.994 92.228ZM82.2793 40.6274V36.1917H83.2793V40.6274H82.2793ZM85.7793 32.6917H112.531V33.6917H85.7793V32.6917ZM116.031 36.1917V89.228H115.031V36.1917H116.031ZM118.531 91.728H125.107V92.728H118.531V91.728ZM116.031 89.228C116.031 90.6087 117.15 91.728 118.531 91.728V92.728C116.598 92.728 115.031 91.161 115.031 89.228H116.031ZM112.531 32.6917C114.464 32.6917 116.031 34.2587 116.031 36.1917H115.031C115.031 34.811 113.912 33.6917 112.531 33.6917V32.6917ZM82.2793 36.1917C82.2793 34.2587 83.8463 32.6917 85.7793 32.6917V33.6917C84.3986 33.6917 83.2793 34.811 83.2793 36.1917H82.2793Z" fill="#828280"/>
|
||||
<path d="M41.979 43.0337L39.0923 40.147L41.979 37.2602L44.8658 40.147L41.979 43.0337ZM127.994 3.65353L125.108 6.54028L122.221 3.65353L125.108 0.766776L127.994 3.65353ZM41.479 40.147V6.65353H42.479V40.147H41.479ZM44.979 3.15353H125.108V4.15353H44.979V3.15353ZM41.479 6.65353C41.479 4.72053 43.046 3.15353 44.979 3.15353V4.15353C43.5983 4.15353 42.479 5.27282 42.479 6.65353H41.479Z" fill="#828280"/>
|
||||
<path d="M0.76416 54.0911L0.76416 45.126C0.76416 44.5737 1.21188 44.126 1.76416 44.126L69.2315 44.126C69.7838 44.126 70.2315 44.5737 70.2315 45.126L70.2315 55.3035" stroke="#009688" stroke-width="1.5" stroke-linecap="round"/>
|
||||
<path d="M73.7192 55.3035L73.7192 45.126C73.7192 44.5737 74.167 44.126 74.7192 44.126L96.1852 44.126C96.7374 44.126 97.1852 44.5737 97.1852 45.126L97.1852 55.3035" stroke="#009688" stroke-width="1.5" stroke-linecap="round"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M53.8234 68.1978C50.7459 68.1978 48.2511 70.6926 48.2511 73.7701V111.82L46.8593 112.481C41.3628 115.092 37.571 120.691 37.571 127.17C37.571 136.146 44.8474 143.423 53.8234 143.423C62.7993 143.423 70.0757 136.146 70.0757 127.17C70.0757 120.691 66.2839 115.092 60.7874 112.481L59.3956 111.82V73.7701C59.3956 70.6926 56.9008 68.1978 53.8234 68.1978ZM43.3755 73.7701C43.3755 67.9999 48.0532 63.3223 53.8234 63.3223C59.5935 63.3223 64.2712 67.9999 64.2712 73.7701V108.803C70.6464 112.437 74.9513 119.299 74.9513 127.17C74.9513 138.839 65.492 148.298 53.8234 148.298C42.1547 148.298 32.6954 138.839 32.6954 127.17C32.6954 119.299 37.0003 112.437 43.3755 108.803V73.7701Z" fill="#898989"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.546 77.9488C15.9131 77.6886 16.5964 77.283 17.4922 77.283C18.4249 77.2831 19.1237 77.7247 19.4862 77.9963C19.8951 78.3027 20.2496 78.6782 20.5447 79.0328C21.1408 79.7491 21.7489 80.6916 22.339 81.7202C23.5319 83.7997 24.8404 86.5665 26.0477 89.4434C27.2588 92.3291 28.3955 95.3907 29.2342 98.0802C30.04 100.664 30.6719 103.211 30.6719 104.915C30.6719 107.942 29.7247 111.525 27.6384 114.413C25.4972 117.377 22.1188 119.63 17.4921 119.63C12.995 119.63 9.522 117.707 7.22741 114.825C4.98372 112.008 3.93772 108.377 3.93772 104.915C3.93772 103.001 4.58779 100.359 5.43962 97.7004C6.31841 94.9576 7.50745 91.9128 8.76947 89.0746C10.028 86.2443 11.3881 83.5543 12.6224 81.5392C13.2332 80.5421 13.8603 79.6319 14.4717 78.9412C14.7748 78.5987 15.1352 78.2399 15.546 77.9488ZM10.0827 99.188C9.2405 101.817 8.81327 103.826 8.81327 104.915C8.81327 107.461 9.59314 109.969 11.0415 111.788C12.439 113.543 14.5243 114.755 17.4921 114.755C20.3302 114.755 22.3227 113.445 23.6864 111.558C25.1049 109.594 25.7963 107.039 25.7963 104.915C25.7963 104.045 25.3977 102.155 24.5797 99.5317C23.7947 97.0144 22.7142 94.0994 21.5521 91.3302C20.3862 88.5523 19.1653 85.9861 18.1099 84.1463C17.8706 83.7291 17.6489 83.3655 17.4473 83.0554C17.2441 83.3491 17.021 83.6924 16.78 84.0859C15.6957 85.8561 14.4327 88.3383 13.2244 91.0556C12.0196 93.7652 10.8979 96.6436 10.0827 99.188Z" fill="#898989"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M13.9403 99.4588C15.2653 99.6973 16.146 100.965 15.9075 102.29C15.7929 102.926 15.7611 104.097 16.0986 105.249C16.4227 106.355 17.0363 107.301 18.1215 107.889C19.3053 108.53 19.745 110.01 19.1037 111.194C18.4624 112.377 16.9829 112.817 15.7991 112.176C13.2953 110.819 12.0105 108.636 11.4197 106.62C10.8423 104.649 10.8789 102.704 11.1091 101.426C11.3477 100.101 12.6152 99.2202 13.9403 99.4588Z" fill="#898989"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M56.4827 116.827C61.0891 118.012 64.4927 122.194 64.4927 127.17C64.4927 133.069 59.7111 137.851 53.8127 137.851C47.9142 137.851 43.1326 133.069 43.1326 127.17C43.1326 122.194 46.5362 118.012 51.1426 116.827L51.1426 76.4401C51.1426 74.9655 52.338 73.7701 53.8127 73.7701C55.2873 73.7701 56.4827 74.9655 56.4827 76.4401L56.4827 116.827Z" fill="#C2C2C2"/>
|
||||
<path d="M64.4927 127.17C64.4927 133.069 59.7111 137.85 53.8127 137.85C47.9142 137.85 43.1326 133.069 43.1326 127.17C43.1326 121.272 47.9142 116.49 53.8127 116.49C59.7111 116.49 64.4927 121.272 64.4927 127.17Z" fill="#009688"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M97.1825 137.851C97.1825 136.504 96.0911 135.413 94.7447 135.413H81.6524C80.306 135.413 79.2146 136.504 79.2146 137.851C79.2146 139.197 80.306 140.289 81.6524 140.289H94.7447C96.0911 140.289 97.1825 139.197 97.1825 137.851Z" fill="#009688"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M97.1825 121.831C97.1825 120.485 96.0911 119.393 94.7447 119.393H83.8344C82.4881 119.393 81.3967 120.485 81.3967 121.831C81.3967 123.177 82.4881 124.269 83.8344 124.269H94.7447C96.0911 124.269 97.1825 123.177 97.1825 121.831Z" fill="#009688"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M97.1825 105.81C97.1825 107.157 96.0911 108.248 94.7447 108.248L79.4703 108.248C78.124 108.248 77.0326 107.157 77.0326 105.81C77.0326 104.464 78.124 103.373 79.4703 103.373L94.7447 103.373C96.0911 103.373 97.1825 104.464 97.1825 105.81Z" fill="#009688"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M97.1825 89.7905C97.1825 91.1368 96.0911 92.2283 94.7447 92.2283L79.4703 92.2283C78.124 92.2283 77.0326 91.1368 77.0326 89.7905C77.0326 88.4442 78.124 87.3527 79.4703 87.3527L94.7447 87.3527C96.0911 87.3527 97.1825 88.4442 97.1825 89.7905Z" fill="#009688"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M97.1825 73.7704C97.1825 72.424 96.0911 71.3326 94.7447 71.3326H79.4703C78.124 71.3326 77.0326 72.424 77.0326 73.7704C77.0326 75.1167 78.124 76.2081 79.4703 76.2081H94.7447C96.0911 76.2081 97.1825 75.1167 97.1825 73.7704Z" fill="#C2C2C2"/>
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="74" viewBox="0 0 64 74"><line x1="23" y1="39" x2="23" y2="63" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-width:2px;opacity:0.5"/><path d="M1,47c0-2.886,4.629-12,6-12s6,9.526,6,12a6,6,0,0,1-6,6A5.767,5.767,0,0,1,1,47Z" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-width:2px"/><path d="M5,45c0,2,0,4,2,4" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-width:2px"/><path d="M45,69H39" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-miterlimit:10;stroke-width:2px"/><path d="M45,61H39" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-miterlimit:10;stroke-width:2px"/><path d="M45,53H39" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-miterlimit:10;stroke-width:2px"/><path d="M45,45H39" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-miterlimit:10;stroke-width:2px"/><path d="M45,37H39" style="fill:none;stroke:#949494;stroke-linecap:square;stroke-width:2px"/><path d="M27,53.844V37a4,4,0,0,0-4-4h0a4,4,0,0,0-4,4V53.844a10,10,0,1,0,8,0Z" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-width:2px"/><line x1="23" y1="55" x2="23" y2="63" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-miterlimit:10;stroke-width:2px"/><circle cx="23" cy="63" r="5" style="fill:#009688"/><polyline points="1.5 27.5 1.5 23.5 33.5 23.5 33.5 27.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/><polyline points="36.5 27.5 36.5 23.5 47.5 23.5 47.5 27.5" style="fill:none;stroke:#009688;stroke-linecap:square;stroke-linejoin:round"/><polyline points="61.5 7.5 17.5 7.5 17.5 19.5" style="fill:none;stroke:#949494;stroke-linecap:round"/><polyline points="61.5 49.5 55.5 49.5 55.5 17.5 41.5 17.5 41.5 19.5" style="fill:none;stroke:#949494;stroke-linecap:round"/></svg>
|
||||
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 951 B |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 951 B |