完成配置下拉框刷新。按钮颜色修改尝试。测试更多参数样式修改
This commit is contained in:
parent
1886e4aa59
commit
b04c4bbf55
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 73 KiB |
|
@ -0,0 +1,79 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 28.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 1366 768" style="enable-background:new 0 0 1366 768;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#808080;}
|
||||
</style>
|
||||
<g>
|
||||
<path class="st0" d="M15.09,8.38c1.62,0.13,3.09,0.19,4.41,0.19h9.09c1.37,0,2.87-0.06,4.5-0.19v2.16c-1-0.06-2.47-0.12-4.41-0.19
|
||||
h-3.28v5.72h2.62c1.69,0,3.03-0.06,4.03-0.19v2.06c-1.38-0.12-2.66-0.19-3.84-0.19h-2.81v6.84h5.06c2,0,3.38-0.06,4.12-0.19v2.06
|
||||
c-1.25-0.13-2.59-0.19-4.03-0.19H16.78c-1,0-2.19,0.06-3.56,0.19v-2.06c1.19,0.13,2.34,0.19,3.47,0.19h0.47c0-0.69,0-1.78,0-3.28
|
||||
c0.06-4.25,0.03-6.66-0.09-7.22c1.56,0,2.37,0.09,2.44,0.28c0,0.06-0.03,0.16-0.09,0.28c-0.13,0.31-0.22,0.66-0.28,1.03
|
||||
c0,4.94-0.03,7.91-0.09,8.91h4.41V10.34H19.5c-1.88,0.06-3.34,0.13-4.41,0.19V8.38z"/>
|
||||
<path class="st0" d="M46.69,6.5c0.19,0.06,0.41,0.13,0.66,0.19c1.31,0.19,1.94,0.38,1.88,0.56c0,0.06-0.06,0.16-0.19,0.28
|
||||
c-0.44,0.5-0.97,1.41-1.59,2.72h6.38c2.5,0,4.12-0.06,4.88-0.19v2.16c-0.56-0.06-2.19-0.12-4.88-0.19h-7.12
|
||||
c-0.69,1.19-1.69,2.69-3,4.5c-0.19,0.25-0.31,0.44-0.38,0.56v8.62c0.06,1.81,0.09,2.69,0.09,2.62h-2.25
|
||||
c0.12-0.69,0.19-1.63,0.19-2.81v-6.38c-1.44,1.44-2.5,2.41-3.19,2.91c-0.63-0.69-1.22-1.19-1.78-1.5c1.75-1.06,3.41-2.34,4.97-3.84
|
||||
l-0.09-1.59c0.44,0,0.87,0.03,1.31,0.09c0.62-0.69,1.31-1.75,2.06-3.19h-2.06c-0.69,0-1.63,0.03-2.81,0.09c-0.81,0-1.38,0-1.69,0
|
||||
V9.97c1.44,0.13,2.94,0.19,4.5,0.19h2.91C46.03,9.03,46.44,7.81,46.69,6.5z M49.78,13.62c1.37-0.06,2.16,0,2.34,0.19
|
||||
c0,0.13-0.03,0.31-0.09,0.56c-0.13,0.31-0.19,0.69-0.19,1.12v2.25h1.97c0.75,0,2-0.03,3.75-0.09v2.06h-0.38
|
||||
c-1.75-0.12-2.88-0.19-3.38-0.19h-1.97v5.81h2.34c2.25-0.06,3.66-0.12,4.22-0.19v1.88c-0.19,0-0.63,0-1.31,0
|
||||
c-1.25-0.06-2.22-0.09-2.91-0.09h-7.03c-1.19,0-2.28,0.06-3.28,0.19v-1.97c0.44,0.06,1.5,0.09,3.19,0.09
|
||||
c1.19,0.06,2.16,0.09,2.91,0.09v-5.81c-2.38,0-4.03,0.06-4.97,0.19v-2.06c1.5,0.06,3.16,0.09,4.97,0.09
|
||||
C49.97,16.06,49.91,14.69,49.78,13.62z"/>
|
||||
<path class="st0" d="M65.34,6.88c1.81,0.13,2.69,0.28,2.62,0.47c0,0.06-0.03,0.19-0.09,0.38c-0.19,0.31-0.31,0.63-0.38,0.94
|
||||
c-0.06,0.88-0.09,1.88-0.09,3h1.78c1.5,0,2.66-0.09,3.47-0.28c-0.19,2.06-0.38,4.69-0.56,7.88c-0.25,4.44-0.47,6.69-0.66,6.75
|
||||
c-0.56,0.69-1.91,1.09-4.03,1.22c-0.25-0.81-0.59-1.66-1.03-2.53c1.81,0.38,2.91,0.22,3.28-0.47c0.12-0.25,0.31-2.97,0.56-8.16
|
||||
c0.12-1.31,0.19-2.22,0.19-2.72h-3.09c0,6.81-1.56,11.69-4.69,14.62c-0.44-0.56-1.03-1.09-1.78-1.59c3.06-2,4.62-6.34,4.69-13.03
|
||||
h-0.47c-1.12,0-2.16,0.06-3.09,0.19v-2.06c1.06,0.13,2.03,0.19,2.91,0.19h0.66C65.59,10.41,65.53,8.81,65.34,6.88z M73.97,10.44
|
||||
c0.5,0.19,1.19,0.28,2.06,0.28h3.66c0.69,0,1.41-0.06,2.16-0.19c-0.19,0.75-0.25,1.41-0.19,1.97v11.72c0,1.06,0.06,1.72,0.19,1.97
|
||||
H79.5c0.12-0.19,0.19-0.84,0.19-1.97h-3.66c0,0.94,0.06,1.72,0.19,2.34h-2.25c0.12-0.69,0.19-1.47,0.19-2.34V12.5
|
||||
C74.16,12,74.09,11.31,73.97,10.44z M79.69,12.41h-3.66v10.12h3.66V12.41z"/>
|
||||
<path class="st0" d="M98.34,6.5c1.5,0.13,2.44,0.25,2.81,0.38c0,0.06-0.03,0.13-0.09,0.19c-0.44,0.31-0.66,0.84-0.66,1.59
|
||||
c-0.06,1.12-0.09,2.38-0.09,3.75h3.47c0.75,0,1.53-0.03,2.34-0.09c0.38-0.06,0.62-0.09,0.75-0.09v1.97
|
||||
c-0.69-0.12-1.72-0.19-3.09-0.19h-3.47c0.06,2.62,0.34,5.03,0.84,7.22c0.87-1.94,1.44-3.81,1.69-5.62
|
||||
c1.06,0.38,1.91,0.75,2.53,1.12c0,0.06-0.06,0.13-0.19,0.19c-0.25,0.13-0.41,0.31-0.47,0.56c-0.13,0.25-0.28,0.59-0.47,1.03
|
||||
c-0.88,2-1.63,3.5-2.25,4.5c1,1.69,1.84,2.69,2.53,3c0.38-0.06,0.56-0.75,0.56-2.06c0.5,0.63,1.09,1.09,1.78,1.41
|
||||
c-0.5,1.94-1.03,2.97-1.59,3.09c-1.63-0.19-3.16-1.53-4.59-4.03c-0.56,0.81-1.94,2.12-4.12,3.94c-0.31-0.5-1.06-0.94-2.25-1.31
|
||||
c1.88-0.81,3.75-2.22,5.62-4.22c-0.88-2.12-1.34-5.06-1.41-8.81h-6.94c0.94,0.25,1.41,0.47,1.41,0.66l-0.19,0.09
|
||||
c-0.31,0.19-0.53,0.34-0.66,0.47c-0.19,0.31-0.41,0.63-0.66,0.94h2.62c1.69,0,2.72-0.03,3.09-0.09v1.69
|
||||
c-0.25-0.06-1.25-0.09-3-0.09h-3.66l-2.16,2.72h3c0-0.94-0.06-1.72-0.19-2.34c1.69,0.13,2.53,0.25,2.53,0.38l-0.09,0.09
|
||||
c-0.31,0.25-0.47,0.66-0.47,1.22v0.66h0.84c1.44,0,2.31-0.06,2.62-0.19v1.88c-0.31-0.12-1.19-0.19-2.62-0.19h-0.84v1.78
|
||||
c1.25-0.12,2.53-0.31,3.84-0.56c-0.25,0.31-0.41,0.91-0.47,1.78c-0.63,0-1.75,0.09-3.38,0.28v1.31c0,0.69,0.06,1.31,0.19,1.88
|
||||
h-2.16c0.12-0.56,0.19-1.19,0.19-1.88v-1.22c-2.75,0.31-4.56,0.56-5.44,0.75c-0.06-0.62-0.25-1.28-0.56-1.97
|
||||
c0.75,0.19,2.75,0.13,6-0.19v-1.97H88.5c-0.69,0-1.28,0.16-1.78,0.47c-0.06-0.12-0.16-0.31-0.28-0.56
|
||||
c-0.06-0.19-0.28-0.62-0.66-1.31c0.87-0.06,1.91-1,3.09-2.81h-0.56c-0.19,0-0.47,0-0.84,0c-0.63-0.06-1.09-0.03-1.41,0.09v-1.69
|
||||
c0.38,0.06,1.19,0.09,2.44,0.09h1.12c0.5-0.69,0.87-1.41,1.12-2.16h-3.28c-0.5,0-1.06,0.03-1.69,0.09
|
||||
c-0.38,0.06-0.63,0.09-0.75,0.09v-1.97c0.69,0.13,1.5,0.19,2.44,0.19h3.94v-1.88h-1.97c-0.75,0-1.56,0.06-2.44,0.19h-0.19V8.84
|
||||
c0.5,0.13,1.34,0.19,2.53,0.19h2.06V8.66c0-0.25-0.03-0.53-0.09-0.84c0-0.62-0.03-1.03-0.09-1.22c1.12,0,1.94,0.09,2.44,0.28
|
||||
l-0.09,0.09c-0.25,0.44-0.38,1-0.38,1.69v0.38h1.5c1.44,0,2.31-0.03,2.62-0.09v1.78c-0.13,0-0.38-0.03-0.75-0.09
|
||||
c-0.69-0.06-1.28-0.09-1.78-0.09h-1.59v1.88h5.34c-0.06-0.69-0.09-1.69-0.09-3C98.37,8.22,98.34,7.25,98.34,6.5z M103.5,7.81
|
||||
l1.97,2.53l-1.97,1.12c-0.75-1.44-1.34-2.34-1.78-2.72L103.5,7.81z"/>
|
||||
<path class="st0" d="M121.12,7.91v1.88c-0.19-0.06-1.12-0.09-2.81-0.09h-0.66v2.62h1.41c0.75,0,1.41-0.03,1.97-0.09l-0.09,1.41v12
|
||||
c0,0.75,0.03,1.19,0.09,1.31h-1.97c0.06-0.25,0.09-0.69,0.09-1.31h-7.12c0,0.87,0.03,1.44,0.09,1.69h-1.97
|
||||
c0.12-0.44,0.19-1,0.19-1.69V14.19c0-0.87-0.03-1.5-0.09-1.88c0.31,0.06,0.97,0.09,1.97,0.09h1.41V9.69h-1.41
|
||||
c-1.25,0-2.13,0.06-2.62,0.19V7.81c0.62,0.19,1.5,0.28,2.62,0.28h6.09C119.87,8.09,120.81,8.03,121.12,7.91z M113.62,13.62h-1.59
|
||||
v5.72v1.69h7.12v-1.97c-1.69,0.13-2.62-0.12-2.81-0.75c0-2.06,0-3.62,0-4.69h-1.41c0,3.25-0.5,5.31-1.5,6.19
|
||||
c-0.19-0.25-0.63-0.47-1.31-0.66C113.31,18.28,113.81,16.44,113.62,13.62z M112.03,22.25v2.16h7.12v-2.16H112.03z M116.34,9.69
|
||||
h-1.41v2.72h1.41V9.69z M117.66,13.53c0,1.19,0,2.44,0,3.75c0,0.25,0.5,0.38,1.5,0.38v-4.12H117.66z M129.47,7.81
|
||||
c-0.13,0.5-0.19,1.44-0.19,2.81v3.75c0,0.13,0,0.53,0,1.22c0.06,0.94,0.09,1.53,0.09,1.78h-1.88l0.09-0.94h-3.19v7.5v0.09
|
||||
c-0.06,0.69,0.22,1.09,0.84,1.22c1.31,0.06,2.28,0,2.91-0.19c0.69-0.5,1-1.47,0.94-2.91c0.75,0.81,1.47,1.34,2.16,1.59
|
||||
c-0.38,1.31-0.81,2.19-1.31,2.62c-0.44,0.31-1.28,0.5-2.53,0.56c-1.5,0.06-2.75-0.03-3.75-0.28c-0.75-0.25-1.12-0.69-1.12-1.31
|
||||
V14.66c0.31,0,0.84,0.03,1.59,0.09c0.69,0,1.16,0,1.41,0h2.06V9.69h-2.44c-0.38,0-0.94,0.03-1.69,0.09c-0.56,0-0.97,0-1.22,0V7.81
|
||||
c0.87,0.06,1.84,0.09,2.91,0.09h1.31C127.84,7.91,128.84,7.88,129.47,7.81z"/>
|
||||
<path class="st0" d="M135.47,7.16c0.38,0.13,1.16,0.19,2.34,0.19h12.75c1.37,0,2.19-0.06,2.44-0.19c-0.13,0.5-0.19,1.28-0.19,2.34
|
||||
v0.47c0,1.25,0.06,2.06,0.19,2.44c-0.38-0.12-1.16-0.19-2.34-0.19h-5.53l-0.19,1.41H150c1.56,0,2.75-0.09,3.56-0.28
|
||||
c0.19,0,0.31,0,0.38,0v1.78h-0.19c-0.81-0.12-2.03-0.19-3.66-0.19h-5.25l-0.19,1.41h4.22c1.12,0,1.81-0.06,2.06-0.19
|
||||
c-0.13,0.63-0.19,1.41-0.19,2.34v7.59h0.94c1.12,0,2.03-0.03,2.72-0.09h0.19v1.69h-0.09c-0.75-0.13-2-0.19-3.75-0.19h-13.31
|
||||
c-1.63,0-2.94,0.06-3.94,0.19h-0.19V26h0.09c0.62,0.06,1.56,0.09,2.81,0.09h1.12v-7.78c0-1.12-0.06-1.84-0.19-2.16
|
||||
c0.5,0.13,1.25,0.19,2.25,0.19h3.47l0.19-1.41h-5.25c-1.19,0-2.28,0.06-3.28,0.19c-0.19,0-0.31,0-0.38,0v-1.78h0.19
|
||||
c1,0.19,2.19,0.28,3.56,0.28h5.34l0.19-1.41h-5.34c-1.38,0-2.25,0.06-2.62,0.19c0-0.06,0-0.25,0-0.56
|
||||
c0.06-0.69,0.09-1.31,0.09-1.88V9.59C135.56,8.22,135.53,7.41,135.47,7.16z M137.25,8.75v1.97h3.56V8.75H137.25z M139.03,17.56
|
||||
v1.22h10.03v-1.22H139.03z M139.03,19.91v1.31h10.03v-1.31H139.03z M139.03,22.34v1.31h10.03v-1.31H139.03z M139.03,24.78v1.31
|
||||
h10.03v-1.31H139.03z M142.31,8.75v1.97h3.56V8.75H142.31z M147.47,8.75v1.97h3.56V8.75H147.47z"/>
|
||||
<path class="st0" d="M160.59,23.47V26h-2.53v-2.53H160.59z"/>
|
||||
<path class="st0" d="M167.25,23.47V26h-2.53v-2.53H167.25z"/>
|
||||
<path class="st0" d="M173.91,23.47V26h-2.53v-2.53H173.91z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 7.9 KiB |
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 33 KiB |
|
@ -0,0 +1,122 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 28.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 1366 768" style="enable-background:new 0 0 1366 768;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{enable-background:new ;}
|
||||
</style>
|
||||
<g class="st0">
|
||||
<path d="M30.12,40.75c10.75,0,19.06-0.06,24.94-0.19c-0.75,1.88-1.5,4.19-2.25,6.94c-6.88,0-11.75,0-14.62,0
|
||||
c-3.5-0.13-6.81-0.25-9.94-0.38c-4.88-0.13-8.38-1.69-10.5-4.69c-2.75,2.62-4.69,4.69-5.81,6.19L9.12,40c1.5-1.25,3-2.44,4.5-3.56
|
||||
V25.75H9.31v-7.31h11.81v17.62C22.87,39.06,25.87,40.63,30.12,40.75z M16.62,3.25c2.25,3.38,4.31,6.56,6.19,9.56l-6.56,3.56
|
||||
c-0.38-0.62-0.88-1.5-1.5-2.62c-0.88-1.5-2.31-3.87-4.31-7.12L16.62,3.25z M31.62,20.31h4.5V16h7.31v4.31h9.19v6.38h-9.19v3.38
|
||||
h10.69v6.56H43.44v3h-7.31v-3h-13.5v-6.56h13.5v-3.38H23.56v-6.38c1-1.62,2.06-3.56,3.19-5.81H23V8.12h6.75
|
||||
c1-1.75,1.75-3.38,2.25-4.88L40.06,4c-0.38,0.63-0.81,1.5-1.31,2.62c-0.38,0.63-0.63,1.12-0.75,1.5h15.75v6.38H34.62
|
||||
c-0.63,1-1.38,2.44-2.25,4.31C32,19.56,31.75,20.06,31.62,20.31z"/>
|
||||
<path d="M64.62,16.75c0.75,0,1.5,0,2.25,0c0.25-0.5,0.56-1.19,0.94-2.06c0.5-1,0.87-1.75,1.12-2.25l5.44,2.62h9.56v-2.44H74V7h9.94
|
||||
V3.44h7.5V7H101v5.62h-9.56v2.44h10.5v5.62l-1.31,6.94l-6.38-0.94l1.31-5.81h-18c2.25,0.63,4.75,1.31,7.5,2.06l-1.69,4.12
|
||||
c-0.75-0.25-1.81-0.62-3.19-1.12c-2.38-0.87-4.31-1.56-5.81-2.06l1.5-3h-2.81v-2.44c-1.38,2.88-3.44,6.63-6.19,11.25
|
||||
c1.5-0.25,3.06-0.44,4.69-0.56c0,0.38-0.06,0.81-0.19,1.31c-0.13,2.25-0.19,3.88-0.19,4.88c-2.75,0.13-5.44,0.38-8.06,0.75
|
||||
c-0.75,0.13-1.69,0.25-2.81,0.38c0.38,0,0.12,0.06-0.75,0.19L57.69,31c1.5-1,2.75-2.25,3.75-3.75c0.75-1.25,1.5-2.62,2.25-4.12
|
||||
c-2,0-3.63,0.19-4.88,0.56l-1.88-6.19c1.25-1,2.25-2.5,3-4.5c1.37-2.75,2.62-6,3.75-9.75l6.94,2.06
|
||||
C68.5,9.81,66.5,13.63,64.62,16.75z M74,25.56c1.25,0.38,3,0.94,5.25,1.69c1.75,0.63,3.06,1.06,3.94,1.31l-1.5,3.38h3.56
|
||||
c0.25-2.37,0.38-5.69,0.38-9.94h7.5c-0.25,4.75-0.44,8.06-0.56,9.94h9.75v5.81H91.44v0.19c4.62,1.75,8.31,3.25,11.06,4.5l-3.56,6
|
||||
c-1.25-0.63-3-1.5-5.25-2.62c-2.5-1.12-4.44-2.06-5.81-2.81c-2.38,2.25-6.88,4.12-13.5,5.62c-0.5-1.12-1.25-2.56-2.25-4.31
|
||||
c-1,0.12-2.44,0.31-4.31,0.56c-4.38,0.62-7.63,1.12-9.75,1.5l-0.94-6.75c4.5-0.38,9.5-0.94,15-1.69c0,1.5,0,2.94,0,4.31
|
||||
c6-1,9.75-2.5,11.25-4.5H72.69v-5.81h7.5c-2.75-1-5.44-1.94-8.06-2.81L74,25.56z"/>
|
||||
<path d="M124.62,6.62c8.37-0.38,16.25-0.87,23.62-1.5l1.5,7.12c-3,0.13-5.88,0.31-8.62,0.56v9.56h9.56v7.31h-9.56v18.56h-7.69
|
||||
V29.69h-9c-0.13,1.88-0.19,3.63-0.19,5.25c-4.88,0.38-8.88,0.75-12,1.12c-1.38,0.25-2.75,0.5-4.12,0.75l-2.06-6.38
|
||||
c1.5-0.75,2.75-1.88,3.75-3.38c0.38-0.5,0.94-1.25,1.69-2.25c0.38-0.62,0.69-1.12,0.94-1.5c-2.13,0.13-3.94,0.31-5.44,0.56l-2.06-6
|
||||
c1-0.62,1.94-1.75,2.81-3.38c2.25-3.87,4.12-7.62,5.62-11.25l7.5,2.25c-0.38,0.63-0.94,1.5-1.69,2.62c-1.63,2.75-3.5,5.75-5.62,9
|
||||
c0.87,0,1.88,0,3,0c1.12-1.75,2.12-3.44,3-5.06l6.75,3.19c-2.5,3.63-5.94,8.38-10.31,14.25c0.75,0,2-0.12,3.75-0.38
|
||||
c2.12-0.25,3.62-0.44,4.5-0.56v-6.19h9.19v-9c-0.88,0.13-2.13,0.19-3.75,0.19c-1.63,0.13-2.88,0.19-3.75,0.19
|
||||
c-0.13-0.75-0.31-1.94-0.56-3.56C125,8.56,124.75,7.38,124.62,6.62z M106.25,46.56l-1.12-6.75c1.37-0.12,4.19-0.44,8.44-0.94
|
||||
c5.12-0.5,9-0.94,11.62-1.31c-0.13,2.38-0.19,4.56-0.19,6.56c-2.13,0.25-5.88,0.75-11.25,1.5C110.25,46,107.75,46.31,106.25,46.56z
|
||||
"/>
|
||||
<path d="M189.88,4.19c0.75,2.25,1.5,4.56,2.25,6.94h6v6H191v3.56h6.56v6H191v3.75h6.56v6H191v3.75h7.5v5.62h-20.06v2.62h-6.94
|
||||
V25.75c-0.25,0.25-0.56,0.69-0.94,1.31c-0.5,0.5-0.88,0.94-1.12,1.31c-0.13-0.62-0.31-1.56-0.56-2.81
|
||||
c-0.5-1.62-0.81-2.81-0.94-3.56c-1.63,2.62-3.31,5.13-5.06,7.5c2.12-0.25,4.19-0.44,6.19-0.56c-0.25,2.5-0.38,4.5-0.38,6
|
||||
c-6.75,0.75-11,1.31-12.75,1.69l-2.06-5.81c1.75-1.25,2.94-2.44,3.56-3.56c0.25-0.5,0.69-1.19,1.31-2.06
|
||||
c0.5-0.87,0.87-1.5,1.12-1.88c-1.63,0.13-3.25,0.31-4.88,0.56l-1.88-6.19c0.75-0.75,1.56-1.81,2.44-3.19
|
||||
c1.88-3.12,3.75-6.87,5.62-11.25l6.94,2.25c-2.62,4.25-5.13,8.13-7.5,11.62c1,0,1.94-0.06,2.81-0.19c0.87-1.37,1.69-2.81,2.44-4.31
|
||||
l4.31,2.44c1.75-4,3-7.94,3.75-11.81l7.69,1.12c-0.13,0.25-0.25,0.69-0.38,1.31c-0.75,2.38-1.38,4.19-1.88,5.44h5.44
|
||||
c0-0.12-0.06-0.44-0.19-0.94c-0.38-1.25-1-3-1.88-5.25L189.88,4.19z M154.25,46.19l-0.94-6.75c2.75-0.25,6.81-0.75,12.19-1.5
|
||||
c1.75-0.25,3.06-0.44,3.94-0.56c-0.13,2.62-0.13,4.81,0,6.56C165.19,44.44,160.12,45.19,154.25,46.19z M178.44,17.12v3.56h5.44
|
||||
v-3.56H178.44z M178.44,26.69v3.75h5.44v-3.75H178.44z M178.44,36.44v3.75h5.44v-3.75H178.44z"/>
|
||||
<path d="M242.56,31.56V37c-2.38,1.63-4.69,3.13-6.94,4.5c4,0.5,7.75,0.88,11.25,1.12c-0.88,1.62-1.69,3.44-2.44,5.44
|
||||
c-9-1-15.25-2-18.75-3c-4.88,1.5-11.88,2.69-21,3.56c-1-2.25-1.88-4.12-2.62-5.62c4.25,0,9-0.38,14.25-1.12
|
||||
c-0.75-0.5-1.88-1.25-3.38-2.25c-0.63-0.38-1.12-0.69-1.5-0.94c-1.5,1.12-3.38,2.31-5.62,3.56c-1.12-1.75-2.5-3.5-4.12-5.25
|
||||
c5.25-2.5,8.75-4.88,10.5-7.12h-5.25V17.69c-0.38,0.25-0.94,0.63-1.69,1.12c-0.75,0.63-1.31,1.06-1.69,1.31
|
||||
c-0.63-2.37-1.44-4.75-2.44-7.12c4.37-2.62,7.69-5.94,9.94-9.94l8.25,0.56c-0.13,0.25-0.31,0.56-0.56,0.94
|
||||
c-0.5,0.75-0.88,1.25-1.12,1.5h27.75v5.81h-32.25c-0.5,0.5-1,1-1.5,1.5h31.12v16.5h-21.94c-0.13,0.13-0.38,0.38-0.75,0.75
|
||||
c-0.25,0.38-0.5,0.69-0.75,0.94H242.56z M235.44,18.06h-21.19v1.88h21.19V18.06z M214.25,25.19h21.19v-1.88h-21.19V25.19z
|
||||
M232.62,36.62h-13.69c2.25,1.25,4.5,2.19,6.75,2.81C228.06,38.69,230.38,37.75,232.62,36.62z"/>
|
||||
<path d="M255.31,3.62h7.31v7.69h5.62v6.94h-5.62v4.5l1.88-1.88c1.12,1,2.62,2.31,4.5,3.94c0.87,1,1.56,1.69,2.06,2.06l-5.25,5.44
|
||||
c-0.38-0.62-1.06-1.44-2.06-2.44c-0.5-0.62-0.88-1.06-1.12-1.31v19.88h-7.31V32.5c-1.25,2.75-2.81,5.38-4.69,7.88
|
||||
c-0.5-4.75-1-8.37-1.5-10.88c2.37-3,4.44-6.75,6.19-11.25h-5.44v-6.94h5.44V3.62z M270.12,11.12h12.75v-7.5h7.5v7.5h4.12v7.31
|
||||
h-4.12v22.31c0.12,4.88-2.19,7.31-6.94,7.31c-0.88,0-2.38,0.06-4.5,0.19c-2.13,0-3.56,0-4.31,0c-0.13-1-0.38-2.75-0.75-5.25
|
||||
c-0.13-0.75-0.25-1.31-0.38-1.69c1.37,0.13,3.44,0.19,6.19,0.19c2.25,0.13,3.31-0.94,3.19-3.19V26.69
|
||||
c-3.13,5.5-7.75,10.94-13.88,16.31c-1.88-2.25-3.63-4.19-5.25-5.81c7.12-5.5,12.44-11.75,15.94-18.75h-9.56V11.12z"/>
|
||||
<path d="M298.25,11.31h5.25v-7.5h7.69v7.5h4.88v7.12h-4.88v5.62c0.75-0.12,1.75-0.25,3-0.38c1-0.25,1.69-0.38,2.06-0.38
|
||||
c0,1,0.06,2.44,0.19,4.31c0,1.38,0,2.31,0,2.81c-1.5,0.38-3.25,0.75-5.25,1.12v9.94c0.12,4-1.75,6.12-5.62,6.38
|
||||
c-1.12,0.12-3.31,0.19-6.56,0.19c-0.13-1-0.44-2.56-0.94-4.69c-0.25-1-0.44-1.75-0.56-2.25c0.38,0,0.94,0,1.69,0
|
||||
c0.87,0.13,1.56,0.19,2.06,0.19c1.62,0.13,2.37-0.75,2.25-2.62v-5.62c-2,0.38-3.88,0.75-5.62,1.12l-0.94-7.88
|
||||
c1-0.12,2.75-0.38,5.25-0.75c0.62-0.12,1.06-0.19,1.31-0.19v-6.94h-5.25V11.31z M317.38,6.25h25.12v7.31h-6.94v26.81
|
||||
c0.25,4.88-2.38,7.37-7.88,7.5c-0.63,0-1.69,0-3.19,0c-2,0.12-3.56,0.19-4.69,0.19c-0.38-2.5-0.88-4.88-1.5-7.12
|
||||
c2.25,0.13,4.37,0.19,6.38,0.19c2.12,0.13,3.12-0.94,3-3.19V13.56h-10.31V6.25z"/>
|
||||
<path d="M367.06,10.38c-2.88,0.75-6.94,1.5-12.19,2.25v6.94h10.31v6.94h-10.31v8.44c1.12-0.25,3.06-0.69,5.81-1.31
|
||||
c2.12-0.38,3.69-0.69,4.69-0.94c-0.13,2.75-0.13,5.25,0,7.5c-2.75,0.5-6.19,1.31-10.31,2.44c-1.25,0.25-2.69,0.69-4.31,1.31
|
||||
l-0.19,0.19l-4.69-5.44c1.12-1.12,1.69-2.69,1.69-4.69V6.44c5.75-0.5,11.12-1.5,16.12-3L367.06,10.38z M367.62,6.25H389v28.88
|
||||
c0.25,4.63-1.88,6.88-6.38,6.75c-0.63,0-1.81,0.06-3.56,0.19c-1.25,0-2.06,0-2.44,0c-0.13-1-0.38-2.62-0.75-4.88
|
||||
c-0.25-1.25-0.44-2.19-0.56-2.81c0.38,0,1.12,0.06,2.25,0.19c1.12,0,1.81,0,2.06,0c1.37,0.13,2-0.56,1.88-2.06V13.19h-6.38v35.25
|
||||
h-7.5V6.25z"/>
|
||||
<path d="M413.94,48.44V29.69c-0.25,0-0.56,0-0.94,0c-0.38-1.62-1.12-3.69-2.25-6.19c0.25,0,0.62-0.06,1.12-0.19
|
||||
c3.5-0.75,5.94-1.44,7.31-2.06c-1-1-1.88-2.12-2.62-3.38c-0.38,0.25-0.88,0.75-1.5,1.5c-0.38,0.38-0.63,0.63-0.75,0.75
|
||||
c-0.25-0.5-0.69-1.25-1.31-2.25c-0.5-0.87-0.94-1.56-1.31-2.06v6.94h-3.75v3.94h3.94v6.19h-3.94v5.44
|
||||
c1.37-0.25,2.81-0.44,4.31-0.56c0,2.88,0,5.13,0,6.75c-6.5,0.87-12.5,1.88-18,3l-1.12-7.31c0.12,0,0.31,0,0.56,0
|
||||
c0.38-0.12,0.69-0.19,0.94-0.19V24.62h5.06v14.81c0.25,0,0.62-0.06,1.12-0.19c0.38,0,0.62,0,0.75,0v-16.5H395V4.94h16.69v8.62
|
||||
c3.25-3.25,5.56-6.62,6.94-10.12l7.5,0.38c-0.13,0.38-0.44,1-0.94,1.88c-0.38,0.75-0.69,1.38-0.94,1.88H437v6.38
|
||||
c-1.63,2.75-3.44,5.19-5.44,7.31c2,0.5,4.5,0.94,7.5,1.31c-1,2.5-1.69,4.69-2.06,6.56c-4.75-0.87-8.62-2.06-11.62-3.56
|
||||
c-3,1.63-6.81,2.94-11.44,3.94h22.69v18.94h-7.12V46h-8.62v2.44H413.94z M401.38,16.38h3.94v-5.25h-3.94V16.38z M429.31,13.56
|
||||
h-8.62c1.37,1.88,2.87,3.44,4.5,4.69C426.81,17,428.19,15.44,429.31,13.56z M420.88,35.88V40h8.62v-4.12H420.88z"/>
|
||||
<path d="M453.12,48.25h-7.31V34.19c-0.75,0.75-1.63,1.5-2.62,2.25c-0.38-1.88-1.12-4.31-2.25-7.31c3.75-3.25,7.5-7.31,11.25-12.19
|
||||
l5.25,3.19c8.37-2.5,13.75-5.12,16.12-7.88h-15.75V5.5h24.75v6.75c-1.38,2-3,3.75-4.88,5.25c1.25,0.63,3.06,1.5,5.44,2.62
|
||||
c1.88,1,3.25,1.69,4.12,2.06l-4.12,5.44h1.31v6.75h-9.75v6.19h11.62v6.38h-31.5v-6.38H467v-6.19h-9.94v-6.75h25.31
|
||||
c-3.75-2.25-7.25-4.19-10.5-5.81c-3.5,2-8.06,3.94-13.69,5.81c-0.25-0.5-0.56-1.19-0.94-2.06c-0.5-0.87-0.88-1.5-1.12-1.88
|
||||
c-0.88,1.12-1.88,2.25-3,3.38V48.25z M452,3.81l5.62,4.69c-4,4.25-8.81,8.38-14.44,12.38c-0.63-2.62-1.31-5.25-2.06-7.88
|
||||
C445.5,10,449.12,6.94,452,3.81z"/>
|
||||
<path d="M495.12,3.62h6.75c0,2.25-0.06,4.63-0.19,7.12h4.5v6.56h-4.5c0,0.63-0.06,1.56-0.19,2.81c0,1,0,1.75,0,2.25h5.44v6.75
|
||||
h-5.62c-0.13,0.38-0.19,0.81-0.19,1.31c2.25,1.75,4.69,3.81,7.31,6.19l-4.5,5.81c-1.12-1.37-2.56-2.94-4.31-4.69
|
||||
c-0.88,3.25-2.94,6.94-6.19,11.06c-1.5-2-3.06-4-4.69-6c3.5-3.75,5.37-8.31,5.62-13.69h-5.06v-6.75h5.44c0-0.5,0-1.25,0-2.25
|
||||
c0.12-1.25,0.19-2.19,0.19-2.81h-4.5v-6.56h4.5C494.94,8.25,495,5.88,495.12,3.62z M507.88,33.25V5.12h24.75v27.75h-6.75v-21
|
||||
h-11.44v21c1.37-2.37,2.12-5.94,2.25-10.69c0-1,0.06-2.44,0.19-4.31c0-1.62,0-2.87,0-3.75h6.75c0,0.75,0,2,0,3.75
|
||||
c-0.13,1.75-0.19,3.06-0.19,3.94c-0.13,3.88-0.5,6.75-1.12,8.62h2.81v9.19c0,1.5,0.44,2.19,1.31,2.06c1,0.13,1.56-0.56,1.69-2.06
|
||||
c0.38-2,0.56-3.75,0.56-5.25c3,1.12,5.06,1.88,6.19,2.25c-0.38,1.88-0.75,4-1.12,6.38c-0.75,3.25-2.62,4.81-5.62,4.69h-3.75
|
||||
c-3.63,0-5.44-2-5.44-6V38.5c-2.5,3.5-6.13,6.94-10.88,10.31c-0.38-0.38-0.88-1.06-1.5-2.06c-1.38-1.75-2.38-3-3-3.75
|
||||
c5.62-3.38,9.19-6.62,10.69-9.75H507.88z"/>
|
||||
<path d="M570.88,36.44h-6.38c-0.75,3-1.44,5.19-2.06,6.56c-1.63,3.38-3.81,5.06-6.56,5.06c-3.25,0.12-5.88-1.63-7.88-5.25
|
||||
c-0.38-0.75-0.75-1.56-1.12-2.44c-1.88,1.38-3.94,2.56-6.19,3.56c-0.38-0.5-0.88-1.31-1.5-2.44c-0.88-1.62-1.63-2.94-2.25-3.94
|
||||
c0.5-0.25,1.25-0.69,2.25-1.31c2.62-1.37,4.44-2.44,5.44-3.19c-0.5-3-0.88-6.69-1.12-11.06l-5.44,0.56l-0.75-6.75l5.81-0.56
|
||||
c-0.13-4-0.31-7.94-0.56-11.81h7.31c0,2.13,0.12,5.62,0.38,10.5c-0.25-3.62-0.25-3.44,0,0.56l11.44-1.12l0.75,6.56l-12,1.31
|
||||
c0.25,2.62,0.44,4.88,0.56,6.75c1.88-1.88,3.75-4.06,5.62-6.56l6,3.75c-3.25,4.25-6.56,7.81-9.94,10.69c0.38,1.12,0.81,2.13,1.31,3
|
||||
c0.5,1,1,1.5,1.5,1.5c0.62,0,1.12-0.62,1.5-1.88c0.5-1.75,0.94-3.62,1.31-5.62c1.62,0.75,3.56,1.63,5.81,2.62V9.25h6.75V36.44z
|
||||
M554.56,4.19c3,1.88,5.25,3.31,6.75,4.31l-4.5,5.06c-0.5-0.38-1.19-0.94-2.06-1.69c-1.63-1.25-3-2.37-4.12-3.38L554.56,4.19z
|
||||
M573.88,3.81h7.31v37.12c0.25,4.5-2.06,6.69-6.94,6.56c-1,0.12-2.31,0.19-3.94,0.19c-1.5,0.12-2.75,0.19-3.75,0.19
|
||||
c-0.38-2.38-0.94-4.81-1.69-7.31c2.37,0.13,4.37,0.19,6,0.19c2.12,0.13,3.12-0.69,3-2.44V3.81z"/>
|
||||
<path d="M592.81,24.44h2.62v-7.12h5.62v7.12h4.12v6.19h-4.12V34c0.5-0.12,1.31-0.19,2.44-0.19c1-0.12,1.75-0.19,2.25-0.19
|
||||
c-0.13,2.25-0.19,4.44-0.19,6.56c-0.5,0-1.25,0.06-2.25,0.19c-1,0-1.75,0.06-2.25,0.19v7.5h-7.12v-6.75c-1,0.13-2.5,0.25-4.5,0.38
|
||||
c-1.63,0.25-2.88,0.38-3.75,0.38l-0.38-6.94c3-0.25,5.87-0.44,8.62-0.56v-3.94h-8.06v-6.19c1-3,1.94-6.12,2.81-9.38h-3.19V8.69
|
||||
h4.69c0.38-1.62,0.75-3.38,1.12-5.25l7.31,0.38c-0.13,0.63-0.38,1.63-0.75,3c-0.25,0.88-0.44,1.5-0.56,1.88h7.88v6.38h-9.75
|
||||
c-0.25,1.12-0.75,2.81-1.5,5.06C593.44,22.13,593.06,23.56,592.81,24.44z M620.19,18.25c0,0.5-0.06,1.31-0.19,2.44
|
||||
c-0.13,2.38-0.25,4-0.38,4.88c1.12,6.75,4.94,12.19,11.44,16.31c-1,1-2.31,2.75-3.94,5.25c-0.25,0.38-0.44,0.69-0.56,0.94
|
||||
c-4.88-3.38-8.13-7.19-9.75-11.44c-1.12,3.88-4.31,7.94-9.56,12.19c-0.5-0.63-1.31-1.69-2.44-3.19s-1.94-2.5-2.44-3
|
||||
c6.12-3.75,9.56-9.06,10.31-15.94c0-0.38,0.06-0.94,0.19-1.69c0.25-2.75,0.38-5,0.38-6.75H620.19z M629.94,9.25v6.56L627.31,25
|
||||
l-6.38-1.69l2.44-7.31h-10.31c-0.13,0.25-0.31,0.69-0.56,1.31c-1.38,3.38-2.5,6-3.38,7.88c-2-1.37-4.12-2.62-6.38-3.75
|
||||
c3.12-5.25,5.31-11.25,6.56-18l7.31,0.94c-0.13,0.5-0.38,1.25-0.75,2.25c-0.25,1.25-0.5,2.13-0.75,2.62H629.94z"/>
|
||||
<path d="M645.12,48.25h-7.31V28.19c-0.25,0.38-0.75,1-1.5,1.88c-0.88,1.38-1.56,2.38-2.06,3c-0.13-0.75-0.25-1.94-0.38-3.56
|
||||
c-0.38-3.25-0.63-5.62-0.75-7.12c3.12-5,5.81-11.25,8.06-18.75l7.31,2.06c-1.12,3-2.25,6-3.38,9V48.25z M645.5,24.25
|
||||
c2.12-4.5,3.87-10.5,5.25-18l7.31,1.5c-0.38,1.88-0.75,3.63-1.12,5.25h3.56V3.62h7.69V13h9.38v7.31h-9.38V28h10.69v7.31h-10.69
|
||||
v13.12h-7.69V35.31h-14.06V28h14.06v-7.69h-5.44c-0.75,2.25-1.5,4.38-2.25,6.38c-0.63-0.25-1.63-0.56-3-0.94
|
||||
C647.81,25.13,646.37,24.62,645.5,24.25z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 13 KiB |
|
@ -0,0 +1,43 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 28.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 1366 768" style="enable-background:new 0 0 1366 768;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#808080;}
|
||||
</style>
|
||||
<g>
|
||||
<path class="st0" d="M14.76,8.21l-5.44,14.7h-1.9L2.08,8.21H4l4.07,11.66c0.13,0.38,0.23,0.81,0.3,1.3h0.04
|
||||
c0.05-0.41,0.17-0.85,0.34-1.32L12.9,8.21H14.76z"/>
|
||||
<path class="st0" d="M28.12,22.91h-1.68v-12.7c-0.13,0.13-0.32,0.28-0.57,0.45c-0.25,0.17-0.53,0.33-0.84,0.5s-0.64,0.32-0.98,0.46
|
||||
s-0.68,0.26-1.01,0.34v-1.7c0.37-0.1,0.76-0.24,1.17-0.42c0.41-0.17,0.82-0.37,1.22-0.58c0.4-0.22,0.78-0.44,1.13-0.68
|
||||
c0.36-0.24,0.66-0.47,0.92-0.69h0.64V22.91z"/>
|
||||
<path class="st0" d="M34.3,23.14c-0.31,0-0.58-0.11-0.81-0.34s-0.33-0.5-0.33-0.81s0.11-0.59,0.33-0.82
|
||||
c0.22-0.23,0.49-0.34,0.81-0.34c0.32,0,0.59,0.11,0.82,0.34c0.23,0.23,0.34,0.5,0.34,0.82s-0.11,0.58-0.34,0.81
|
||||
S34.62,23.14,34.3,23.14z"/>
|
||||
<path class="st0" d="M38.33,22.67v-1.62c0.82,0.46,1.69,0.7,2.6,0.7c1.33,0,2.37-0.54,3.11-1.61c0.74-1.07,1.11-2.6,1.11-4.57
|
||||
c-0.01,0.01-0.03,0.01-0.04,0c-0.63,1.26-1.72,1.9-3.28,1.9c-1.26,0-2.29-0.43-3.1-1.28s-1.21-1.96-1.21-3.3
|
||||
c0-1.44,0.44-2.61,1.33-3.53c0.88-0.92,2.02-1.38,3.4-1.38c1.45,0,2.58,0.57,3.39,1.72c0.81,1.15,1.21,2.81,1.21,5
|
||||
c0,2.71-0.53,4.81-1.58,6.28s-2.52,2.2-4.39,2.2C39.91,23.16,39.06,23,38.33,22.67z M42.11,9.39c-0.81,0-1.49,0.31-2.04,0.92
|
||||
c-0.54,0.61-0.82,1.39-0.82,2.33c0,1.03,0.27,1.84,0.8,2.44s1.25,0.89,2.16,0.89c0.79,0,1.46-0.27,2.02-0.81
|
||||
c0.55-0.54,0.83-1.2,0.83-1.98c0-1.11-0.27-2.02-0.82-2.73S42.98,9.39,42.11,9.39z"/>
|
||||
<path class="st0" d="M50.18,23.14c-0.31,0-0.58-0.11-0.81-0.34s-0.33-0.5-0.33-0.81s0.11-0.59,0.33-0.82
|
||||
c0.22-0.23,0.49-0.34,0.81-0.34c0.32,0,0.59,0.11,0.82,0.34c0.23,0.23,0.34,0.5,0.34,0.82S51.22,22.57,51,22.8
|
||||
S50.5,23.14,50.18,23.14z"/>
|
||||
<path class="st0" d="M62.8,8.74l-5.82,14.17h-1.74l5.51-13.19h-7.41V8.21h9.47V8.74z"/>
|
||||
<path class="st0" d="M66.05,23.14c-0.31,0-0.58-0.11-0.81-0.34s-0.33-0.5-0.33-0.81s0.11-0.59,0.33-0.82
|
||||
c0.22-0.23,0.49-0.34,0.81-0.34c0.32,0,0.59,0.11,0.82,0.34c0.23,0.23,0.34,0.5,0.34,0.82s-0.11,0.58-0.34,0.81
|
||||
S66.37,23.14,66.05,23.14z"/>
|
||||
<path class="st0" d="M70,22.55v-1.78c1,0.65,2.03,0.97,3.07,0.97s1.88-0.29,2.51-0.88s0.95-1.37,0.95-2.34
|
||||
c0-0.96-0.32-1.72-0.97-2.26s-1.58-0.81-2.79-0.81c-0.41,0-1.18,0.04-2.31,0.12V8.21h7.12v1.52h-5.53v4.31
|
||||
c0.45-0.03,0.87-0.04,1.25-0.04c1.57,0,2.79,0.39,3.65,1.18c0.86,0.79,1.29,1.87,1.29,3.25c0,1.42-0.46,2.57-1.39,3.44
|
||||
s-2.2,1.3-3.81,1.3C71.68,23.16,70.67,22.96,70,22.55z"/>
|
||||
<path class="st0" d="M87.55,12.06c0-0.45-0.07-0.84-0.21-1.18c-0.14-0.33-0.33-0.61-0.57-0.84c-0.24-0.22-0.53-0.39-0.86-0.5
|
||||
s-0.68-0.16-1.07-0.16c-0.33,0-0.65,0.04-0.96,0.13s-0.62,0.21-0.92,0.37c-0.3,0.16-0.58,0.35-0.86,0.56
|
||||
c-0.28,0.22-0.53,0.46-0.77,0.73v-1.8c0.47-0.46,1-0.81,1.58-1.05c0.58-0.24,1.3-0.36,2.14-0.36c0.6,0,1.16,0.09,1.67,0.26
|
||||
c0.51,0.17,0.96,0.43,1.33,0.76s0.67,0.75,0.89,1.24c0.21,0.49,0.32,1.06,0.32,1.69c0,0.58-0.07,1.11-0.2,1.58
|
||||
c-0.13,0.47-0.34,0.92-0.61,1.33s-0.61,0.82-1.02,1.2s-0.89,0.77-1.45,1.17c-0.69,0.49-1.26,0.91-1.71,1.26
|
||||
c-0.45,0.35-0.8,0.68-1.07,0.98c-0.26,0.3-0.45,0.61-0.55,0.91c-0.11,0.3-0.16,0.65-0.16,1.05h7.32v1.51h-9.07v-0.73
|
||||
c0-0.63,0.07-1.18,0.21-1.66s0.36-0.93,0.68-1.36s0.73-0.86,1.24-1.29c0.51-0.43,1.13-0.92,1.87-1.46c0.53-0.38,0.98-0.75,1.34-1.1
|
||||
c0.36-0.35,0.65-0.7,0.87-1.05s0.37-0.7,0.47-1.06C87.51,12.85,87.55,12.47,87.55,12.06z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.5 KiB |
|
@ -391,6 +391,9 @@ std::vector<Preset*> PresetBundle::get_current_project_embedded_presets()
|
|||
auto printer_presets = this->printers.get_project_embedded_presets();
|
||||
if (!printer_presets.empty())
|
||||
std::copy(printer_presets.begin(), printer_presets.end(), std::back_inserter(project_presets));
|
||||
auto config_presets = this->configs.get_project_embedded_presets();
|
||||
if (!config_presets.empty())
|
||||
std::copy(config_presets.begin(), config_presets.end(), std::back_inserter(project_presets));
|
||||
|
||||
BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(" finished, returned project_presets count %1%")%project_presets.size();
|
||||
return project_presets;
|
||||
|
@ -409,6 +412,7 @@ void PresetBundle::reset_project_embedded_presets()
|
|||
bool printer_reselect = this->printers.reset_project_embedded_presets();
|
||||
bool filament_reselect = this->filaments.reset_project_embedded_presets();
|
||||
bool print_reselect = this->prints.reset_project_embedded_presets();
|
||||
bool config_reselect = this->configs.reset_project_embedded_presets();
|
||||
|
||||
if (printer_reselect) {
|
||||
if (!prefer_printer.empty())
|
||||
|
@ -419,7 +423,7 @@ void PresetBundle::reset_project_embedded_presets()
|
|||
//this->update_multi_material_filament_presets();
|
||||
this->update_compatible(PresetSelectCompatibleType::Never);
|
||||
}
|
||||
else if (filament_reselect || print_reselect) {
|
||||
else if (filament_reselect || print_reselect || config_reselect) {
|
||||
//Preset& current_printer = this->printers.get_selected_preset();
|
||||
/*if (filament_reselect) {
|
||||
const std::vector<std::string> &prefered_filament_profiles = current_printer.config.option<ConfigOptionStrings>("default_filament_profile")->values;
|
||||
|
@ -577,8 +581,7 @@ PresetsConfigSubstitutions PresetBundle::load_user_presets(std::string user, For
|
|||
std::string config_selected_preset_name = configs.get_selected_preset().name;
|
||||
this->configs.load_presets(dir_user_presets, PRESET_CONFIG_NAME, substitutions, substitution_rule);
|
||||
configs.select_preset_by_name(config_selected_preset_name, false);
|
||||
}
|
||||
catch (const std::runtime_error& err) {
|
||||
}catch (const std::runtime_error& err) {
|
||||
errors_cummulative += err.what();
|
||||
}
|
||||
if (!errors_cummulative.empty()) throw Slic3r::RuntimeError(errors_cummulative);
|
||||
|
@ -1396,15 +1399,18 @@ std::vector<std::string> PresetBundle::merge_presets(PresetBundle &&other)
|
|||
std::vector<std::string> duplicate_filaments = this->filaments .merge_presets(std::move(other.filaments), this->vendors);
|
||||
std::vector<std::string> duplicate_sla_materials = this->sla_materials.merge_presets(std::move(other.sla_materials), this->vendors);
|
||||
std::vector<std::string> duplicate_printers = this->printers .merge_presets(std::move(other.printers), this->vendors);
|
||||
std::vector<std::string> duplicate_configs = this->configs .merge_presets(std::move(other.configs), this->vendors);
|
||||
append(this->obsolete_presets.prints, std::move(other.obsolete_presets.prints));
|
||||
append(this->obsolete_presets.sla_prints, std::move(other.obsolete_presets.sla_prints));
|
||||
append(this->obsolete_presets.filaments, std::move(other.obsolete_presets.filaments));
|
||||
append(this->obsolete_presets.sla_materials, std::move(other.obsolete_presets.sla_materials));
|
||||
append(this->obsolete_presets.printers, std::move(other.obsolete_presets.printers));
|
||||
append(this->obsolete_presets.configs, std::move(other.obsolete_presets.configs));
|
||||
append(duplicate_prints, std::move(duplicate_sla_prints));
|
||||
append(duplicate_prints, std::move(duplicate_filaments));
|
||||
append(duplicate_prints, std::move(duplicate_sla_materials));
|
||||
append(duplicate_prints, std::move(duplicate_printers));
|
||||
append(duplicate_configs, std::move(duplicate_configs));
|
||||
return duplicate_prints;
|
||||
}
|
||||
|
||||
|
@ -1415,11 +1421,14 @@ void PresetBundle::update_system_maps()
|
|||
this->filaments .update_map_system_profile_renamed();
|
||||
this->sla_materials.update_map_system_profile_renamed();
|
||||
this->printers .update_map_system_profile_renamed();
|
||||
//xiamian+
|
||||
this->configs .update_map_system_profile_renamed();
|
||||
|
||||
this->prints .update_map_alias_to_profile_name();
|
||||
this->sla_prints .update_map_alias_to_profile_name();
|
||||
this->filaments .update_map_alias_to_profile_name();
|
||||
this->sla_materials.update_map_alias_to_profile_name();
|
||||
this->configs .update_map_alias_to_profile_name();
|
||||
}
|
||||
|
||||
static inline std::string remove_ini_suffix(const std::string &name)
|
||||
|
@ -1439,6 +1448,12 @@ void PresetBundle::load_installed_printers(const AppConfig &config)
|
|||
for (auto &preset : printers)
|
||||
preset.set_visible_from_appconfig(config);
|
||||
}
|
||||
void PresetBundle::load_installed_configs(const AppConfig& config)
|
||||
{
|
||||
this->update_system_maps();
|
||||
for (auto& preset : configs)
|
||||
preset.set_visible_from_appconfig(config);
|
||||
}
|
||||
|
||||
const std::string& PresetBundle::get_preset_name_by_alias( const Preset::Type& preset_type, const std::string& alias) const
|
||||
{
|
||||
|
@ -1449,6 +1464,7 @@ const std::string& PresetBundle::get_preset_name_by_alias( const Preset::Type& p
|
|||
const PresetCollection& presets = preset_type == Preset::TYPE_PRINT ? prints :
|
||||
preset_type == Preset::TYPE_SLA_PRINT ? sla_prints :
|
||||
preset_type == Preset::TYPE_FILAMENT ? filaments :
|
||||
preset_type == Preset::TYPE_CONFIG ? configs :
|
||||
sla_materials;
|
||||
|
||||
return presets.get_preset_name_by_alias(alias);
|
||||
|
@ -1480,10 +1496,13 @@ const int PresetBundle::get_required_hrc_by_filament_type(const std::string& fil
|
|||
void PresetBundle::save_changes_for_preset(const std::string& new_name, Preset::Type type,
|
||||
const std::vector<std::string>& unselected_options, bool save_to_project)
|
||||
{
|
||||
PresetCollection& presets = type == Preset::TYPE_PRINT ? prints :
|
||||
type == Preset::TYPE_SLA_PRINT ? sla_prints :
|
||||
type == Preset::TYPE_FILAMENT ? filaments :
|
||||
type == Preset::TYPE_SLA_MATERIAL ? sla_materials : printers;
|
||||
PresetCollection& presets = type == Preset::TYPE_PRINT ? prints :
|
||||
type == Preset::TYPE_SLA_PRINT ? sla_prints :
|
||||
type == Preset::TYPE_FILAMENT ? filaments :
|
||||
type == Preset::TYPE_SLA_MATERIAL ? sla_materials :
|
||||
type == Preset::TYPE_CONFIG ? configs :
|
||||
printers;
|
||||
|
||||
|
||||
// if we want to save just some from selected options
|
||||
if (!unselected_options.empty()) {
|
||||
|
@ -1589,6 +1608,7 @@ void PresetBundle::load_selections(AppConfig &config, const PresetPreferences& p
|
|||
BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(": enter, preferred printer_model_id %1%")%preferred_selection.printer_model_id;
|
||||
// Update visibility of presets based on application vendor / model / variant configuration.
|
||||
this->load_installed_printers(config);
|
||||
this->load_installed_configs(config);
|
||||
|
||||
// Update visibility of filament and sla material presets
|
||||
this->load_installed_filaments(config);
|
||||
|
@ -1631,6 +1651,7 @@ void PresetBundle::load_selections(AppConfig &config, const PresetPreferences& p
|
|||
filaments.select_preset_by_name_strict(initial_filament_profile_name);
|
||||
sla_prints.select_preset_by_name_strict(initial_sla_print_profile_name);
|
||||
sla_materials.select_preset_by_name_strict(initial_sla_material_profile_name);
|
||||
configs.select_preset_by_name_strict(initial_config_profile_name);
|
||||
|
||||
// Load the names of the other filament profiles selected for a multi-material printer.
|
||||
// Load it even if the current printer technology is SLA.
|
||||
|
@ -4043,6 +4064,7 @@ void PresetBundle::set_default_suppressed(bool default_suppressed)
|
|||
sla_prints.set_default_suppressed(default_suppressed);
|
||||
sla_materials.set_default_suppressed(default_suppressed);
|
||||
printers.set_default_suppressed(default_suppressed);
|
||||
configs.set_default_suppressed(default_suppressed);
|
||||
}
|
||||
|
||||
} // namespace Slic3r
|
||||
|
|
|
@ -227,6 +227,7 @@ public:
|
|||
// based on the user configuration.
|
||||
// If the "vendor" section is missing, enable all models and variants of the particular vendor.
|
||||
void load_installed_printers(const AppConfig &config);
|
||||
void load_installed_configs(const AppConfig &config);
|
||||
|
||||
const std::string& get_preset_name_by_alias(const Preset::Type& preset_type, const std::string& alias) const;
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -414,6 +414,9 @@ void ParamsPanel::create_layout()
|
|||
// m_left_sizer->Add( m_filament_sizer, 1, wxEXPAND, 5 );
|
||||
m_left_sizer->Add( m_tab_filament, 0, wxEXPAND );
|
||||
}
|
||||
if (m_tab_config) {
|
||||
m_left_sizer->Add(m_tab_config, 0, wxEXPAND);
|
||||
}
|
||||
|
||||
if (m_tab_printer) {
|
||||
//m_printer_sizer = new wxBoxSizer( wxVERTICAL );
|
||||
|
@ -481,6 +484,10 @@ void ParamsPanel::refresh_tabs()
|
|||
case Preset::TYPE_PRINTER:
|
||||
m_tab_printer = tab;
|
||||
break;
|
||||
case Preset::TYPE_CONFIG:
|
||||
m_tab_config = tab;
|
||||
//m_tab_config = NULL;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -509,7 +516,7 @@ void ParamsPanel::OnActivate()
|
|||
BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(": first time opened, set current tab to print");
|
||||
// BBS: open/close tab
|
||||
//m_current_tab = m_tab_print;
|
||||
set_active_tab(m_tab_print ? m_tab_print : m_tab_filament);
|
||||
set_active_tab(m_tab_print ? m_tab_print : m_tab_filament ? m_tab_filament : m_tab_config);
|
||||
}
|
||||
Tab* cur_tab = dynamic_cast<Tab *> (m_current_tab);
|
||||
if (cur_tab)
|
||||
|
@ -587,7 +594,8 @@ void ParamsPanel::set_active_tab(wxPanel* tab)
|
|||
{m_tab_print_layer, nullptr},
|
||||
{m_tab_print_plate, nullptr},
|
||||
{m_tab_filament, m_staticline_filament},
|
||||
{m_tab_printer, m_staticline_printer}})) {
|
||||
{m_tab_printer, m_staticline_printer},
|
||||
{m_tab_config, m_staticline_config}})) {
|
||||
if (!t.first) continue;
|
||||
t.first->Show(tab == t.first);
|
||||
if (!t.second) continue;
|
||||
|
@ -658,7 +666,7 @@ void ParamsPanel::msw_rescale()
|
|||
((SwitchButton* )m_mode_region)->Rescale();
|
||||
if (m_mode_view)
|
||||
((SwitchButton* )m_mode_view)->Rescale();
|
||||
for (auto tab : {m_tab_print, m_tab_print_plate, m_tab_print_object, m_tab_print_part, m_tab_print_layer, m_tab_filament, m_tab_printer}) {
|
||||
for (auto tab : {m_tab_print, m_tab_print_plate, m_tab_print_object, m_tab_print_part, m_tab_print_layer, m_tab_filament, m_tab_printer, m_tab_config}) {
|
||||
if (tab) dynamic_cast<Tab*>(tab)->msw_rescale();
|
||||
}
|
||||
//((Button*)m_export_to_file)->Rescale();
|
||||
|
@ -799,6 +807,12 @@ void ParamsPanel::delete_subwindows()
|
|||
m_staticline_printer = nullptr;
|
||||
}
|
||||
|
||||
if (m_staticline_config)
|
||||
{
|
||||
delete m_staticline_config;
|
||||
m_staticline_config = nullptr;
|
||||
}
|
||||
|
||||
if (m_export_to_file)
|
||||
{
|
||||
delete m_export_to_file;
|
||||
|
|
|
@ -1382,6 +1382,17 @@ void Sidebar::update_presets(Preset::Type preset_type)
|
|||
}
|
||||
break;
|
||||
}
|
||||
case Preset::TYPE_CONFIG:
|
||||
//wxGetApp().mainframe->m_param_panel;
|
||||
//p->combo_print->update();
|
||||
{
|
||||
/* Tab* config_tab = wxGetApp().get_tab(Preset::TYPE_CONFIG);
|
||||
if (config_tab) {
|
||||
config_tab->get_combo_box()->update();
|
||||
}*/
|
||||
p->combo_config->update();
|
||||
break;
|
||||
}
|
||||
case Preset::TYPE_SLA_PRINT:
|
||||
;// p->combo_sla_print->update();
|
||||
break;
|
||||
|
@ -1538,6 +1549,7 @@ void Sidebar::msw_rescale()
|
|||
// //p->combo_printer
|
||||
// } )
|
||||
// combo->msw_rescale();
|
||||
p->combo_config->msw_rescale();
|
||||
p->combo_printer->msw_rescale();
|
||||
for (PlaterPresetComboBox* combo : p->combos_filament)
|
||||
combo->msw_rescale();
|
||||
|
|
|
@ -966,7 +966,8 @@ void Tab::update_changed_tree_ui()
|
|||
}
|
||||
}
|
||||
if (page->title() == "Dependencies") {
|
||||
if (m_type == Slic3r::Preset::TYPE_PRINTER) {
|
||||
//xiamian+
|
||||
if (m_type == Slic3r::Preset::TYPE_PRINTER || m_type == Slic3r::Preset::TYPE_CONFIG) {
|
||||
sys_page = m_presets->get_selected_preset_parent() != nullptr;
|
||||
modified_page = false;
|
||||
} else {
|
||||
|
@ -1923,304 +1924,271 @@ void TabPrint::build()
|
|||
m_presets = &m_preset_bundle->prints;
|
||||
load_initial_data();
|
||||
|
||||
auto page = add_options_page(L("Quality"), "empty");
|
||||
auto optgroup = page->new_optgroup("", L"param_layer_height");
|
||||
optgroup->append_single_option_line("layer_height", "layer-height");
|
||||
//optgroup->append_single_option_line("initial_layer_print_height", "layer-height");
|
||||
|
||||
auto page = add_options_page(L("Quality"), "empty");
|
||||
//xiamian-
|
||||
//auto page = add_options_page(L("Quality"), "empty");
|
||||
//auto optgroup = page->new_optgroup(L("Layer height"), L"param_layer_height");
|
||||
auto optgroup = page->new_optgroup("", L"param_layer_height");
|
||||
//optgroup->append_single_option_line("layer_height", "layer-height");
|
||||
//optgroup->append_single_option_line("initial_layer_print_height", "layer-height");
|
||||
//xiamian-
|
||||
//optgroup = page->new_optgroup(L("Line width"), L"param_line_width");
|
||||
//optgroup->append_single_option_line("line_width","parameter/line-width");
|
||||
//optgroup->append_single_option_line("initial_layer_line_width","parameter/line-width");
|
||||
//optgroup->append_single_option_line("outer_wall_line_width","parameter/line-width");
|
||||
//optgroup->append_single_option_line("inner_wall_line_width","parameter/line-width");
|
||||
//optgroup->append_single_option_line("top_surface_line_width","parameter/line-width");
|
||||
//optgroup->append_single_option_line("sparse_infill_line_width","parameter/line-width");
|
||||
//optgroup->append_single_option_line("internal_solid_infill_line_width","parameter/line-width");
|
||||
//optgroup->append_single_option_line("support_line_width","parameter/line-width");
|
||||
//xiamian-
|
||||
//optgroup = page->new_optgroup(L("Seam"), L"param_seam");
|
||||
//optgroup->append_single_option_line("seam_position", "Seam");
|
||||
optgroup->append_single_option_line("seam_gap", "Seam");
|
||||
//optgroup->append_single_option_line("seam_slope_type");
|
||||
optgroup->append_single_option_line("seam_slope_conditional");
|
||||
optgroup->append_single_option_line("scarf_angle_threshold");
|
||||
optgroup->append_single_option_line("seam_slope_start_height");
|
||||
optgroup->append_single_option_line("seam_slope_entire_loop");
|
||||
optgroup->append_single_option_line("seam_slope_min_length");
|
||||
optgroup->append_single_option_line("seam_slope_steps");
|
||||
optgroup->append_single_option_line("seam_slope_inner_walls");
|
||||
optgroup->append_single_option_line("wipe_speed", "Seam");
|
||||
//xiamian-
|
||||
//optgroup = page->new_optgroup(L("Precision"), L"param_precision");
|
||||
//optgroup->append_single_option_line("slice_closing_radius");
|
||||
//optgroup->append_single_option_line("resolution","acr-move");
|
||||
//optgroup->append_single_option_line("enable_arc_fitting", "acr-move");
|
||||
//optgroup->append_single_option_line("xy_hole_compensation", "xy-hole-contour-compensation");
|
||||
//optgroup->append_single_option_line("xy_contour_compensation", "xy-hole-contour-compensation");
|
||||
//optgroup->append_single_option_line("elefant_foot_compensation", "parameter/elephant-foot");
|
||||
//optgroup->append_single_option_line("precise_z_height");
|
||||
//xiamian-
|
||||
//optgroup = page->new_optgroup(L("Ironing"), L"param_ironing");
|
||||
//optgroup->append_single_option_line("ironing_type", "parameter/ironing");
|
||||
optgroup->append_single_option_line("ironing_pattern");
|
||||
optgroup->append_single_option_line("ironing_speed");
|
||||
optgroup->append_single_option_line("ironing_flow");
|
||||
optgroup->append_single_option_line("ironing_spacing");
|
||||
optgroup->append_single_option_line("ironing_direction");
|
||||
//xiamian-
|
||||
//optgroup = page->new_optgroup(L("Wall generator"), L"param_wall");
|
||||
optgroup->append_single_option_line("wall_generator", "wall-generator");
|
||||
optgroup->append_single_option_line("wall_transition_angle");
|
||||
optgroup->append_single_option_line("wall_transition_filter_deviation");
|
||||
optgroup->append_single_option_line("wall_transition_length");
|
||||
optgroup->append_single_option_line("wall_distribution_count");
|
||||
optgroup->append_single_option_line("min_bead_width");
|
||||
optgroup->append_single_option_line("min_feature_size");
|
||||
//xiamian-
|
||||
//optgroup = page->new_optgroup(L("Advanced"), L"param_advanced");
|
||||
optgroup->append_single_option_line("wall_sequence");
|
||||
//optgroup->append_single_option_line("is_infill_first");
|
||||
//optgroup->append_single_option_line("bridge_flow","parameter/bridge");
|
||||
//optgroup->append_single_option_line("thick_bridges","parameter/bridge");
|
||||
//optgroup->append_single_option_line("top_solid_infill_flow_ratio");
|
||||
//optgroup->append_single_option_line("initial_layer_flow_ratio");
|
||||
//optgroup->append_single_option_line("top_one_wall_type");
|
||||
//optgroup->append_single_option_line("top_area_threshold");
|
||||
//optgroup->append_single_option_line("only_one_wall_first_layer");
|
||||
//optgroup->append_single_option_line("detect_overhang_wall");
|
||||
//optgroup->append_single_option_line("smooth_speed_discontinuity_area");
|
||||
//optgroup->append_single_option_line("smooth_coefficient");
|
||||
//optgroup->append_single_option_line("reduce_crossing_wall");
|
||||
//optgroup->append_single_option_line("max_travel_detour_distance");
|
||||
//optgroup = page->new_optgroup(L("Line width"), L"param_line_width");
|
||||
//optgroup->append_single_option_line("line_width", "parameter/line-width");
|
||||
//optgroup->append_single_option_line("initial_layer_line_width", "parameter/line-width");
|
||||
//optgroup->append_single_option_line("outer_wall_line_width", "parameter/line-width");
|
||||
//optgroup->append_single_option_line("inner_wall_line_width", "parameter/line-width");
|
||||
//optgroup->append_single_option_line("top_surface_line_width", "parameter/line-width");
|
||||
//optgroup->append_single_option_line("sparse_infill_line_width", "parameter/line-width");
|
||||
//optgroup->append_single_option_line("internal_solid_infill_line_width", "parameter/line-width");
|
||||
//optgroup->append_single_option_line("support_line_width", "parameter/line-width");
|
||||
|
||||
optgroup->append_single_option_line("support_base_pattern_spacing", "support#base-pattern");
|
||||
optgroup->append_single_option_line("support_interface_top_layers", "support#base-pattern");
|
||||
optgroup->append_single_option_line("support_interface_bottom_layers", "support#base-pattern");
|
||||
optgroup->append_single_option_line("support_interface_spacing", "support#base-pattern");
|
||||
//optgroup = page->new_optgroup(L("Seam"), L"param_seam");
|
||||
//optgroup->append_single_option_line("seam_position", "Seam");
|
||||
//optgroup->append_single_option_line("seam_gap", "Seam");
|
||||
//optgroup->append_single_option_line("seam_slope_type");
|
||||
//optgroup->append_single_option_line("seam_slope_conditional");
|
||||
//optgroup->append_single_option_line("scarf_angle_threshold");
|
||||
//optgroup->append_single_option_line("seam_slope_start_height");
|
||||
//optgroup->append_single_option_line("seam_slope_entire_loop");
|
||||
//optgroup->append_single_option_line("seam_slope_min_length");
|
||||
//optgroup->append_single_option_line("seam_slope_steps");
|
||||
//optgroup->append_single_option_line("seam_slope_inner_walls");
|
||||
//optgroup->append_single_option_line("wipe_speed", "Seam");
|
||||
|
||||
//optgroup = page->new_optgroup(L("Precision"), L"param_precision");
|
||||
//optgroup->append_single_option_line("slice_closing_radius");
|
||||
//optgroup->append_single_option_line("resolution", "acr-move");
|
||||
//optgroup->append_single_option_line("enable_arc_fitting", "acr-move");
|
||||
//optgroup->append_single_option_line("xy_hole_compensation", "xy-hole-contour-compensation");
|
||||
//optgroup->append_single_option_line("xy_contour_compensation", "xy-hole-contour-compensation");
|
||||
//optgroup->append_single_option_line("elefant_foot_compensation", "parameter/elephant-foot");
|
||||
//optgroup->append_single_option_line("precise_z_height");
|
||||
|
||||
//optgroup = page->new_optgroup(L("Ironing"), L"param_ironing");
|
||||
//optgroup->append_single_option_line("ironing_type", "parameter/ironing");
|
||||
//optgroup->append_single_option_line("ironing_pattern");
|
||||
//optgroup->append_single_option_line("ironing_speed");
|
||||
//optgroup->append_single_option_line("ironing_flow");
|
||||
//optgroup->append_single_option_line("ironing_spacing");
|
||||
//optgroup->append_single_option_line("ironing_direction");
|
||||
|
||||
//optgroup = page->new_optgroup(L("Wall generator"), L"param_wall");
|
||||
//optgroup->append_single_option_line("wall_generator", "wall-generator");
|
||||
optgroup->append_single_option_line("wall_transition_angle");
|
||||
optgroup->append_single_option_line("wall_transition_filter_deviation");
|
||||
optgroup->append_single_option_line("wall_transition_length");
|
||||
optgroup->append_single_option_line("wall_distribution_count");
|
||||
optgroup->append_single_option_line("min_bead_width");
|
||||
optgroup->append_single_option_line("min_feature_size");
|
||||
|
||||
//optgroup = page->new_optgroup(L("Advanced"), L"param_advanced");
|
||||
//optgroup->append_single_option_line("wall_sequence");
|
||||
//optgroup->append_single_option_line("is_infill_first");
|
||||
//optgroup->append_single_option_line("bridge_flow", "parameter/bridge");
|
||||
//optgroup->append_single_option_line("thick_bridges", "parameter/bridge");
|
||||
//optgroup->append_single_option_line("top_solid_infill_flow_ratio");
|
||||
//optgroup->append_single_option_line("initial_layer_flow_ratio");
|
||||
optgroup->append_single_option_line("top_one_wall_type");
|
||||
optgroup->append_single_option_line("top_area_threshold");
|
||||
optgroup->append_single_option_line("only_one_wall_first_layer");
|
||||
optgroup->append_single_option_line("detect_overhang_wall");
|
||||
//optgroup->append_single_option_line("smooth_speed_discontinuity_area");
|
||||
//optgroup->append_single_option_line("smooth_coefficient");
|
||||
//optgroup->append_single_option_line("reduce_crossing_wall");
|
||||
optgroup->append_single_option_line("max_travel_detour_distance");
|
||||
|
||||
page = add_options_page(L("Strength"), "empty");
|
||||
//xiamian+
|
||||
optgroup = page->new_optgroup("", L"param_wall");
|
||||
//xiamian-
|
||||
//optgroup = page->new_optgroup(L("Walls"), L"param_wall");
|
||||
//optgroup->append_single_option_line("wall_loops","wall-generator");
|
||||
optgroup->append_single_option_line("detect_thin_wall","wall-generator");
|
||||
optgroup = page->new_optgroup("", L"param_wall");
|
||||
optgroup->append_single_option_line("wall_loops", "wall-generator");
|
||||
//optgroup->append_single_option_line("detect_thin_wall", "wall-generator");
|
||||
|
||||
//optgroup = page->new_optgroup(L("Top/bottom shells"), L"param_shell");
|
||||
optgroup->append_single_option_line("interface_shells");
|
||||
optgroup->append_single_option_line("top_surface_pattern", "fill-patterns#Infill of the top surface and bottom surface");
|
||||
//optgroup->append_single_option_line("top_shell_layers");
|
||||
//optgroup->append_single_option_line("top_shell_thickness");
|
||||
optgroup->append_single_option_line("bottom_surface_pattern", "fill-patterns#Infill of the top surface and bottom surface");
|
||||
//optgroup->append_single_option_line("bottom_shell_layers");
|
||||
//optgroup->append_single_option_line("bottom_shell_thickness");
|
||||
optgroup->append_single_option_line("internal_solid_infill_pattern");
|
||||
//optgroup = page->new_optgroup(L("Top/bottom shells"), L"param_shell");
|
||||
optgroup->append_single_option_line("interface_shells");
|
||||
//optgroup->append_single_option_line("top_surface_pattern", "fill-patterns#Infill of the top surface and bottom surface");
|
||||
optgroup->append_single_option_line("top_shell_layers");
|
||||
optgroup->append_single_option_line("top_shell_thickness");
|
||||
//optgroup->append_single_option_line("bottom_surface_pattern", "fill-patterns#Infill of the top surface and bottom surface");
|
||||
optgroup->append_single_option_line("bottom_shell_layers");
|
||||
optgroup->append_single_option_line("bottom_shell_thickness");
|
||||
//optgroup->append_single_option_line("internal_solid_infill_pattern");
|
||||
|
||||
//optgroup = page->new_optgroup(L("Sparse infill"), L"param_infill");
|
||||
//optgroup->append_single_option_line("sparse_infill_density");
|
||||
optgroup->append_single_option_line("sparse_infill_pattern", "fill-patterns#infill types and their properties of sparse");
|
||||
//optgroup->append_single_option_line("sparse_infill_anchor");
|
||||
//optgroup->append_single_option_line("sparse_infill_anchor_max");
|
||||
optgroup->append_single_option_line("filter_out_gap_fill");
|
||||
//optgroup = page->new_optgroup(L("Sparse infill"), L"param_infill");
|
||||
optgroup->append_single_option_line("sparse_infill_density");
|
||||
//optgroup->append_single_option_line("sparse_infill_pattern", "fill-patterns#infill types and their properties of sparse");
|
||||
//optgroup->append_single_option_line("sparse_infill_anchor");
|
||||
//optgroup->append_single_option_line("sparse_infill_anchor_max");
|
||||
//optgroup->append_single_option_line("filter_out_gap_fill");
|
||||
|
||||
//optgroup = page->new_optgroup(L("Advanced"), L"param_advanced");
|
||||
//optgroup->append_single_option_line("infill_wall_overlap","parameter/strength-advance-settings");
|
||||
//optgroup->append_single_option_line("infill_direction","parameter/strength-advance-settings");
|
||||
optgroup->append_single_option_line("bridge_angle","parameter/strength-advance-settings");
|
||||
optgroup->append_single_option_line("minimum_sparse_infill_area","parameter/strength-advance-settings");
|
||||
optgroup->append_single_option_line("infill_combination","parameter/strength-advance-settings");
|
||||
//optgroup->append_single_option_line("detect_narrow_internal_solid_infill","parameter/strength-advance-settings");
|
||||
//optgroup->append_single_option_line("ensure_vertical_shell_thickness","parameter/strength-advance-settings");
|
||||
//optgroup->append_single_option_line("internal_bridge_support_thickness","parameter/strength-advance-settings");
|
||||
//optgroup = page->new_optgroup(L("Advanced"), L"param_advanced");
|
||||
//optgroup->append_single_option_line("infill_wall_overlap", "parameter/strength-advance-settings");
|
||||
//optgroup->append_single_option_line("infill_direction", "parameter/strength-advance-settings");
|
||||
//optgroup->append_single_option_line("bridge_angle", "parameter/strength-advance-settings");
|
||||
//optgroup->append_single_option_line("minimum_sparse_infill_area", "parameter/strength-advance-settings");
|
||||
//optgroup->append_single_option_line("infill_combination", "parameter/strength-advance-settings");
|
||||
//optgroup->append_single_option_line("detect_narrow_internal_solid_infill", "parameter/strength-advance-settings");
|
||||
//optgroup->append_single_option_line("ensure_vertical_shell_thickness", "parameter/strength-advance-settings");
|
||||
//optgroup->append_single_option_line("internal_bridge_support_thickness","parameter/strength-advance-settings");
|
||||
|
||||
page = add_options_page(L("Speed"), "empty");
|
||||
//xiamian+
|
||||
optgroup = page->new_optgroup("", L"param_speed",15);
|
||||
//xiamian-
|
||||
//optgroup = page->new_optgroup(L("Initial layer speed"), L"param_speed_first", 15);
|
||||
optgroup->append_single_option_line("default_print_speed");
|
||||
optgroup->append_single_option_line("initial_layer_speed");
|
||||
optgroup->append_single_option_line("initial_layer_infill_speed");
|
||||
//optgroup = page->new_optgroup(L("Other layers speed"), L"param_speed", 15);
|
||||
optgroup->append_single_option_line("outer_wall_speed");
|
||||
optgroup->append_single_option_line("inner_wall_speed");
|
||||
//optgroup->append_single_option_line("small_perimeter_speed");
|
||||
//optgroup->append_single_option_line("small_perimeter_threshold");
|
||||
optgroup->append_single_option_line("sparse_infill_speed");
|
||||
optgroup->append_single_option_line("internal_solid_infill_speed");
|
||||
optgroup->append_single_option_line("top_surface_speed");
|
||||
//optgroup->append_single_option_line("enable_overhang_speed", "slow-down-for-overhang");
|
||||
//Line line = { L("Overhang speed"), L("This is the speed for various overhang degrees. Overhang degrees are expressed as a percentage of line width. 0 speed means no slowing down for the overhang degree range and wall speed is used") };
|
||||
//line.label_path = "slow-down-for-overhang";
|
||||
//line.append_option(optgroup->get_option("overhang_1_4_speed"));
|
||||
//line.append_option(optgroup->get_option("overhang_2_4_speed"));
|
||||
//line.append_option(optgroup->get_option("overhang_3_4_speed"));
|
||||
//line.append_option(optgroup->get_option("overhang_4_4_speed"));
|
||||
//optgroup->append_line(line);
|
||||
//optgroup->append_single_option_line("overhang_totally_speed");
|
||||
optgroup->append_single_option_line("bridge_speed");
|
||||
optgroup->append_single_option_line("gap_infill_speed");
|
||||
optgroup->append_single_option_line("support_speed");
|
||||
optgroup->append_single_option_line("support_interface_speed");
|
||||
optgroup = page->new_optgroup("", L"param_speed_first", 15);
|
||||
//optgroup->append_single_option_line("initial_layer_speed");
|
||||
//optgroup->append_single_option_line("initial_layer_infill_speed");
|
||||
|
||||
//optgroup = page->new_optgroup(L("Travel speed"), L"param_travel_speed", 15);
|
||||
optgroup->append_single_option_line("travel_speed");
|
||||
//optgroup = page->new_optgroup(L("Other layers speed"), L"param_speed", 15);
|
||||
//optgroup->append_single_option_line("outer_wall_speed");
|
||||
//optgroup->append_single_option_line("inner_wall_speed");
|
||||
//optgroup->append_single_option_line("small_perimeter_speed");
|
||||
//optgroup->append_single_option_line("small_perimeter_threshold");
|
||||
//optgroup->append_single_option_line("sparse_infill_speed");
|
||||
//optgroup->append_single_option_line("internal_solid_infill_speed");
|
||||
//optgroup->append_single_option_line("top_surface_speed");
|
||||
//optgroup->append_single_option_line("enable_overhang_speed", "slow-down-for-overhang");
|
||||
//Line line = { L("Overhang speed"), L("This is the speed for various overhang degrees. Overhang degrees are expressed as a percentage of line width. 0 speed means no slowing down for the overhang degree range and wall speed is used") };
|
||||
//line.label_path = "slow-down-for-overhang";
|
||||
//line.append_option(optgroup->get_option("overhang_1_4_speed"));
|
||||
//line.append_option(optgroup->get_option("overhang_2_4_speed"));
|
||||
//line.append_option(optgroup->get_option("overhang_3_4_speed"));
|
||||
//line.append_option(optgroup->get_option("overhang_4_4_speed"));
|
||||
//optgroup->append_line(line);
|
||||
//optgroup->append_single_option_line("overhang_totally_speed");
|
||||
//optgroup->append_single_option_line("bridge_speed");
|
||||
//optgroup->append_single_option_line("gap_infill_speed");
|
||||
//optgroup->append_single_option_line("support_speed");
|
||||
//optgroup->append_single_option_line("support_interface_speed");
|
||||
|
||||
//optgroup = page->new_optgroup(L("Acceleration"), L"param_acceleration", 15);
|
||||
optgroup->append_single_option_line("default_acceleration");
|
||||
//optgroup->append_single_option_line("initial_layer_acceleration");
|
||||
//optgroup->append_single_option_line("outer_wall_acceleration");
|
||||
//optgroup->append_single_option_line("inner_wall_acceleration");
|
||||
//optgroup->append_single_option_line("top_surface_acceleration");
|
||||
//optgroup->append_single_option_line("sparse_infill_acceleration");
|
||||
//optgroup->append_single_option_line("accel_to_decel_enable");
|
||||
//optgroup->append_single_option_line("accel_to_decel_factor");
|
||||
//optgroup = page->new_optgroup(L("Travel speed"), L"param_travel_speed", 15);
|
||||
//optgroup->append_single_option_line("travel_speed");
|
||||
|
||||
//optgroup = page->new_optgroup(L("Jerk(XY)"), L"param_acceleration", 15);
|
||||
optgroup->append_single_option_line("default_jerk");
|
||||
optgroup->append_single_option_line("outer_wall_jerk");
|
||||
optgroup->append_single_option_line("inner_wall_jerk");
|
||||
optgroup->append_single_option_line("infill_jerk");
|
||||
optgroup->append_single_option_line("top_surface_jerk");
|
||||
optgroup->append_single_option_line("initial_layer_jerk");
|
||||
optgroup->append_single_option_line("travel_jerk");
|
||||
//optgroup = page->new_optgroup(L("Acceleration"), L"param_acceleration", 15);
|
||||
//optgroup->append_single_option_line("default_acceleration");
|
||||
//optgroup->append_single_option_line("initial_layer_acceleration");
|
||||
//optgroup->append_single_option_line("outer_wall_acceleration");
|
||||
//optgroup->append_single_option_line("inner_wall_acceleration");
|
||||
//optgroup->append_single_option_line("top_surface_acceleration");
|
||||
//optgroup->append_single_option_line("sparse_infill_acceleration");
|
||||
//optgroup->append_single_option_line("accel_to_decel_enable");
|
||||
//optgroup->append_single_option_line("accel_to_decel_factor");
|
||||
|
||||
#ifdef HAS_PRESSURE_EQUALIZER
|
||||
optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope_positive");
|
||||
optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope_negative");
|
||||
#endif /* HAS_PRESSURE_EQUALIZER */
|
||||
//optgroup = page->new_optgroup(L("Jerk(XY)"), L"param_acceleration", 15);
|
||||
optgroup->append_single_option_line("default_jerk");
|
||||
optgroup->append_single_option_line("outer_wall_jerk");
|
||||
optgroup->append_single_option_line("inner_wall_jerk");
|
||||
optgroup->append_single_option_line("infill_jerk");
|
||||
optgroup->append_single_option_line("top_surface_jerk");
|
||||
optgroup->append_single_option_line("initial_layer_jerk");
|
||||
optgroup->append_single_option_line("travel_jerk");
|
||||
|
||||
//#ifdef HAS_PRESSURE_EQUALIZER
|
||||
// optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope_positive");
|
||||
// optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope_negative");
|
||||
//#endif /* HAS_PRESSURE_EQUALIZER */
|
||||
|
||||
page = add_options_page(L("Support"), "support");
|
||||
//xiamian+
|
||||
optgroup = page->new_optgroup("", L"param_support");
|
||||
//ximian-
|
||||
//optgroup = page->new_optgroup(L("Support"), L"param_support");
|
||||
//optgroup->append_single_option_line("enable_support", "support");
|
||||
optgroup->append_single_option_line("support_type", "support#support-types");
|
||||
optgroup->append_single_option_line("support_style", "support#support-styles");
|
||||
optgroup->append_single_option_line("support_threshold_angle", "support#threshold-angle");
|
||||
optgroup->append_single_option_line("support_on_build_plate_only");
|
||||
optgroup->append_single_option_line("support_critical_regions_only");
|
||||
optgroup->append_single_option_line("support_remove_small_overhang");
|
||||
//optgroup->append_single_option_line("enforce_support_layers");
|
||||
optgroup->append_single_option_line("enable_support", "support");
|
||||
optgroup->append_single_option_line("support_type", "support#support-types");
|
||||
optgroup->append_single_option_line("support_style", "support#support-styles");
|
||||
optgroup->append_single_option_line("support_threshold_angle", "support#threshold-angle");
|
||||
optgroup->append_single_option_line("support_on_build_plate_only");
|
||||
optgroup->append_single_option_line("support_critical_regions_only");
|
||||
optgroup->append_single_option_line("support_remove_small_overhang");
|
||||
//optgroup->append_single_option_line("enforce_support_layers");
|
||||
|
||||
//optgroup = page->new_optgroup(L("Raft"), L"param_raft");
|
||||
optgroup->append_single_option_line("raft_layers");
|
||||
optgroup->append_single_option_line("raft_contact_distance");
|
||||
optgroup->append_single_option_line("raft_first_layer_density");
|
||||
//optgroup = page->new_optgroup(L("Raft"), L"param_raft");
|
||||
//optgroup->append_single_option_line("raft_layers");
|
||||
//optgroup->append_single_option_line("raft_contact_distance");
|
||||
//optgroup->append_single_option_line("raft_first_layer_density");
|
||||
|
||||
//optgroup = page->new_optgroup(L("Support filament"), L"param_support_filament");
|
||||
optgroup->append_single_option_line("support_filament", "support#support-filament");
|
||||
optgroup->append_single_option_line("support_interface_filament", "support#support-filament");
|
||||
optgroup->append_single_option_line("support_interface_not_for_body", "support#support-filament");
|
||||
//optgroup = page->new_optgroup(L("Support filament"), L"param_support_filament");
|
||||
//optgroup->append_single_option_line("support_filament", "support#support-filament");
|
||||
//optgroup->append_single_option_line("support_interface_filament", "support#support-filament");
|
||||
//optgroup->append_single_option_line("support_interface_not_for_body", "support#support-filament");
|
||||
|
||||
//optgroup = page->new_optgroup(L("Options for support material and raft"));
|
||||
//optgroup = page->new_optgroup(L("Options for support material and raft"));
|
||||
|
||||
//BBS
|
||||
//optgroup = page->new_optgroup(L("Advanced"), L"param_advanced");
|
||||
optgroup->append_single_option_line("raft_first_layer_expansion"); // not only for raft, but for support too
|
||||
optgroup->append_single_option_line("tree_support_wall_count");
|
||||
//optgroup->append_single_option_line("support_top_z_distance", "support#top-z-distance");
|
||||
//optgroup->append_single_option_line("support_bottom_z_distance", "support#bottom-z-distance");
|
||||
optgroup->append_single_option_line("support_base_pattern", "support#base-pattern");
|
||||
//optgroup->append_single_option_line("support_base_pattern_spacing", "support#base-pattern");
|
||||
//optgroup->append_single_option_line("support_angle");
|
||||
//optgroup->append_single_option_line("support_interface_top_layers", "support#base-pattern");
|
||||
//optgroup->append_single_option_line("support_interface_bottom_layers", "support#base-pattern");
|
||||
optgroup->append_single_option_line("support_interface_pattern", "support#base-pattern");
|
||||
//optgroup->append_single_option_line("support_interface_spacing", "support#base-pattern");
|
||||
optgroup->append_single_option_line("support_bottom_interface_spacing");
|
||||
//optgroup->append_single_option_line("support_expansion", "support#base-pattern");
|
||||
//optgroup->append_single_option_line("support_interface_loop_pattern");
|
||||
//BBS
|
||||
//optgroup = page->new_optgroup(L("Advanced"), L"param_advanced");
|
||||
//optgroup->append_single_option_line("raft_first_layer_expansion"); // not only for raft, but for support too
|
||||
//optgroup->append_single_option_line("tree_support_wall_count");
|
||||
//optgroup->append_single_option_line("support_top_z_distance", "support#top-z-distance");
|
||||
//optgroup->append_single_option_line("support_bottom_z_distance", "support#bottom-z-distance");
|
||||
//optgroup->append_single_option_line("support_base_pattern", "support#base-pattern");
|
||||
//optgroup->append_single_option_line("support_base_pattern_spacing", "support#base-pattern");
|
||||
//optgroup->append_single_option_line("support_angle");
|
||||
//optgroup->append_single_option_line("support_interface_top_layers", "support#base-pattern");
|
||||
//optgroup->append_single_option_line("support_interface_bottom_layers", "support#base-pattern");
|
||||
//optgroup->append_single_option_line("support_interface_pattern", "support#base-pattern");
|
||||
//optgroup->append_single_option_line("support_interface_spacing", "support#base-pattern");
|
||||
//optgroup->append_single_option_line("support_bottom_interface_spacing");
|
||||
//optgroup->append_single_option_line("support_expansion", "support#base-pattern");
|
||||
//optgroup->append_single_option_line("support_interface_loop_pattern");
|
||||
|
||||
optgroup->append_single_option_line("support_object_xy_distance", "support");
|
||||
//optgroup->append_single_option_line("support_object_first_layer_gap", "support");
|
||||
optgroup->append_single_option_line("bridge_no_support", "support#base-pattern");
|
||||
optgroup->append_single_option_line("max_bridge_length", "support#base-pattern");
|
||||
optgroup->append_single_option_line("independent_support_layer_height", "support");
|
||||
//optgroup->append_single_option_line("support_object_xy_distance", "support");
|
||||
//optgroup->append_single_option_line("support_object_first_layer_gap", "support");
|
||||
//optgroup->append_single_option_line("bridge_no_support", "support#base-pattern");
|
||||
//optgroup->append_single_option_line("max_bridge_length", "support#base-pattern");
|
||||
//optgroup->append_single_option_line("independent_support_layer_height", "support");
|
||||
|
||||
//optgroup = page->new_optgroup(L("Tree Support"), L"param_advanced");
|
||||
optgroup->append_single_option_line("tree_support_branch_distance", "support#tree-support-only-options");
|
||||
optgroup->append_single_option_line("tree_support_branch_diameter", "support#tree-support-only-options");
|
||||
optgroup->append_single_option_line("tree_support_branch_angle", "support#tree-support-only-options");
|
||||
//xiamian+
|
||||
page = add_options_page(L("Configuration"), "empty");
|
||||
optgroup = page->new_optgroup("", L"param_layer_height");
|
||||
optgroup->append_single_option_line("wall_loops", "wall-generator");
|
||||
optgroup->append_single_option_line("layer_height", "layer-height");
|
||||
optgroup->append_single_option_line("seam_position", "Seam");
|
||||
optgroup->append_single_option_line("top_shell_layers");
|
||||
optgroup->append_single_option_line("top_shell_thickness");
|
||||
optgroup->append_single_option_line("bottom_shell_layers");
|
||||
optgroup->append_single_option_line("bottom_shell_thickness");
|
||||
optgroup->append_single_option_line("sparse_infill_density");
|
||||
optgroup->append_single_option_line("enable_support", "support");
|
||||
//optgroup = page->new_optgroup(L("Tree Support"), L"param_advanced");
|
||||
//optgroup->append_single_option_line("tree_support_branch_distance", "support#tree-support-only-options");
|
||||
//optgroup->append_single_option_line("tree_support_branch_diameter", "support#tree-support-only-options");
|
||||
//optgroup->append_single_option_line("tree_support_branch_angle", "support#tree-support-only-options");
|
||||
|
||||
page = add_options_page(L("Others"), "advanced");
|
||||
//xiamian+
|
||||
optgroup = page->new_optgroup("", L"param_adhension");
|
||||
//xiamian-
|
||||
//optgroup = page->new_optgroup(L("Bed adhension"), L"param_adhension");
|
||||
//optgroup->append_single_option_line("skirt_loops");
|
||||
//optgroup->append_single_option_line("skirt_height");
|
||||
//optgroup->append_single_option_line("skirt_distance");
|
||||
//optgroup->append_single_option_line("draft_shield");
|
||||
//optgroup->append_single_option_line("brim_type", "auto-brim");
|
||||
//optgroup->append_single_option_line("brim_width", "auto-brim#manual");
|
||||
//optgroup->append_single_option_line("brim_object_gap", "auto-brim#brim-object-gap");
|
||||
//optgroup->append_single_option_line("skirt_loops");
|
||||
//optgroup->append_single_option_line("skirt_height");
|
||||
//optgroup->append_single_option_line("skirt_distance");
|
||||
//optgroup->append_single_option_line("draft_shield");
|
||||
//optgroup->append_single_option_line("brim_type", "auto-brim");
|
||||
//optgroup->append_single_option_line("brim_width", "auto-brim#manual");
|
||||
//optgroup->append_single_option_line("brim_object_gap", "auto-brim#brim-object-gap");
|
||||
|
||||
//optgroup = page->new_optgroup(L("Prime tower"), L"param_tower");
|
||||
//optgroup->append_single_option_line("enable_prime_tower","parameter/prime-tower");
|
||||
//optgroup->append_single_option_line("prime_tower_width","parameter/prime-tower");
|
||||
//optgroup->append_single_option_line("prime_volume","parameter/prime-tower");
|
||||
//optgroup->append_single_option_line("prime_tower_brim_width","parameter/prime-tower");
|
||||
//optgroup = page->new_optgroup(L("Prime tower"), L"param_tower");
|
||||
//optgroup->append_single_option_line("enable_prime_tower", "parameter/prime-tower");
|
||||
//optgroup->append_single_option_line("prime_tower_width", "parameter/prime-tower");
|
||||
//optgroup->append_single_option_line("prime_volume", "parameter/prime-tower");
|
||||
//optgroup->append_single_option_line("prime_tower_brim_width", "parameter/prime-tower");
|
||||
|
||||
//optgroup = page->new_optgroup(L("Flush options"), L"param_flush");
|
||||
//optgroup->append_single_option_line("flush_into_infill", "reduce-wasting-during-filament-change#wipe-into-infill");
|
||||
//optgroup->append_single_option_line("flush_into_objects", "reduce-wasting-during-filament-change#wipe-into-object");
|
||||
//optgroup->append_single_option_line("flush_into_support", "reduce-wasting-during-filament-change#wipe-into-support-enabled-by-default");
|
||||
//optgroup = page->new_optgroup(L("Flush options"), L"param_flush");
|
||||
//optgroup->append_single_option_line("flush_into_infill", "reduce-wasting-during-filament-change#wipe-into-infill");
|
||||
//optgroup->append_single_option_line("flush_into_objects", "reduce-wasting-during-filament-change#wipe-into-object");
|
||||
//optgroup->append_single_option_line("flush_into_support", "reduce-wasting-during-filament-change#wipe-into-support-enabled-by-default");
|
||||
|
||||
//optgroup = page->new_optgroup(L("Special mode"), L"param_special");
|
||||
optgroup->append_single_option_line("slicing_mode");
|
||||
optgroup->append_single_option_line("print_sequence", "sequent-print");
|
||||
optgroup->append_single_option_line("spiral_mode", "spiral-vase");
|
||||
optgroup->append_single_option_line("spiral_mode_smooth", "spiral-vase#smooth");
|
||||
optgroup->append_single_option_line("spiral_mode_max_xy_smoothing", "spiral-vase#max-xy-smoothing");
|
||||
optgroup->append_single_option_line("timelapse_type", "Timelapse");
|
||||
//optgroup = page->new_optgroup(L("Special mode"), L"param_special");
|
||||
//optgroup->append_single_option_line("slicing_mode");
|
||||
//optgroup->append_single_option_line("print_sequence", "sequent-print");
|
||||
//optgroup->append_single_option_line("spiral_mode", "spiral-vase");
|
||||
//optgroup->append_single_option_line("spiral_mode_smooth", "spiral-vase#smooth");
|
||||
//optgroup->append_single_option_line("spiral_mode_max_xy_smoothing", "spiral-vase#max-xy-smoothing");
|
||||
//optgroup->append_single_option_line("timelapse_type", "Timelapse");
|
||||
|
||||
optgroup->append_single_option_line("fuzzy_skin", "parameter/fuzzy-skin");
|
||||
optgroup->append_single_option_line("fuzzy_skin_point_distance");
|
||||
optgroup->append_single_option_line("fuzzy_skin_thickness");
|
||||
//optgroup->append_single_option_line("fuzzy_skin", "parameter/fuzzy-skin");
|
||||
//optgroup->append_single_option_line("fuzzy_skin_point_distance");
|
||||
//optgroup->append_single_option_line("fuzzy_skin_thickness");
|
||||
|
||||
//optgroup = page->new_optgroup(L("Advanced"), L"advanced");
|
||||
// optgroup->append_single_option_line("mmu_segmented_region_max_width");
|
||||
optgroup->append_single_option_line("mmu_segmented_region_interlocking_depth");
|
||||
//optgroup = page->new_optgroup(L("Advanced"), L"advanced");
|
||||
// optgroup->append_single_option_line("mmu_segmented_region_max_width");
|
||||
optgroup->append_single_option_line("mmu_segmented_region_interlocking_depth");
|
||||
|
||||
//optgroup = page->new_optgroup(L("G-code output"), L"param_gcode");
|
||||
optgroup->append_single_option_line("reduce_infill_retraction");
|
||||
optgroup->append_single_option_line("gcode_add_line_number");
|
||||
optgroup->append_single_option_line("exclude_object");
|
||||
Option option = optgroup->get_option("filename_format");
|
||||
option.opt.full_width = true;
|
||||
optgroup->append_single_option_line(option);
|
||||
optgroup = page->new_optgroup(L("G-code output"), L"param_gcode");
|
||||
optgroup->append_single_option_line("reduce_infill_retraction");
|
||||
optgroup->append_single_option_line("gcode_add_line_number");
|
||||
optgroup->append_single_option_line("exclude_object");
|
||||
Option option = optgroup->get_option("filename_format");
|
||||
option.opt.full_width = true;
|
||||
optgroup->append_single_option_line(option);
|
||||
|
||||
optgroup = page->new_optgroup(L("Post-processing scripts"), L"param_gcode", 0);
|
||||
option = optgroup->get_option("post_process");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = 15;
|
||||
optgroup->append_single_option_line(option);
|
||||
optgroup = page->new_optgroup(L("Post-processing scripts"), L"param_gcode", 0);
|
||||
option = optgroup->get_option("post_process");
|
||||
option.opt.full_width = true;
|
||||
option.opt.is_code = true;
|
||||
option.opt.height = 15;
|
||||
optgroup->append_single_option_line(option);
|
||||
|
||||
optgroup = page->new_optgroup(L("Notes"),"note");
|
||||
optgroup->label_width = 0;
|
||||
option = optgroup->get_option("process_notes");
|
||||
option.opt.full_width = true;
|
||||
option.opt.height = 25;
|
||||
optgroup->append_single_option_line(option);
|
||||
optgroup = page->new_optgroup(L("Notes"), "note");
|
||||
optgroup->label_width = 0;
|
||||
option = optgroup->get_option("process_notes");
|
||||
option.opt.full_width = true;
|
||||
option.opt.height = 25;
|
||||
optgroup->append_single_option_line(option);
|
||||
|
||||
#if 0
|
||||
//page = add_options_page(L("Dependencies"), "advanced.png");
|
||||
|
@ -3184,7 +3152,7 @@ void TabFilament::build()
|
|||
line.append_option(optgroup->get_option("complete_print_exhaust_fan_speed"));
|
||||
optgroup->append_line(line);
|
||||
//BBS
|
||||
add_filament_overrides_page();
|
||||
// add_filament_overrides_page();
|
||||
#if 0
|
||||
//page = add_options_page(L("Advanced"), "advanced");
|
||||
// optgroup = page->new_optgroup(L("Wipe tower parameters"));
|
||||
|
@ -4281,48 +4249,152 @@ void TabPrinter::update_fff()
|
|||
void TabPrinter::update_sla()
|
||||
{ ; }
|
||||
|
||||
|
||||
void TabConfig::build() {
|
||||
m_presets = &m_preset_bundle->configs;
|
||||
load_initial_data();
|
||||
auto page = add_options_page(L("Quality"), "spool");
|
||||
auto optgroup = page->new_optgroup("", L"param_layer_height");
|
||||
optgroup->append_single_option_line("initial_layer_print_height", "layer-height");
|
||||
|
||||
//auto page = add_options_page(L("Qualityttttttt"), "empty");
|
||||
//auto optgroup = page->new_optgroup("", L"param_layer_height");
|
||||
//optgroup->append_single_option_line("initial_layer_print_height", "layer-height");
|
||||
//optgroup->append_single_option_line("initial_layer_line_width");
|
||||
//optgroup->append_single_option_line("outer_wall_line_width", "parameter/line-width");
|
||||
//optgroup->append_single_option_line("inner_wall_line_width", "parameter/line-width");
|
||||
//optgroup->append_single_option_line("top_surface_line_width", "parameter/line-width");
|
||||
//optgroup->append_single_option_line("sparse_infill_line_width", "parameter/line-width");
|
||||
//optgroup->append_single_option_line("support_line_width", "parameter/line-width");
|
||||
//optgroup->append_single_option_line("resolution", "acr-move");
|
||||
//optgroup->append_single_option_line("enable_arc_fitting", "acr-move");
|
||||
//optgroup->append_single_option_line("wall_generator", "wall-generator");
|
||||
//optgroup->append_single_option_line("wall_sequence");
|
||||
optgroup->append_single_option_line("initial_layer_line_width");
|
||||
optgroup->append_single_option_line("outer_wall_line_width", "parameter/line-width");
|
||||
optgroup->append_single_option_line("inner_wall_line_width", "parameter/line-width");
|
||||
optgroup->append_single_option_line("top_surface_line_width", "parameter/line-width");
|
||||
optgroup->append_single_option_line("sparse_infill_line_width", "parameter/line-width");
|
||||
optgroup->append_single_option_line("support_line_width", "parameter/line-width");
|
||||
|
||||
/*page = add_options_page(L("Strength"), "empty");
|
||||
optgroup = page->new_optgroup("", L"param_wall");
|
||||
optgroup->append_single_option_line("detect_thin_wall", "wall-generator");*/
|
||||
optgroup->append_single_option_line("seam_gap", "Seam");
|
||||
optgroup->append_single_option_line("seam_slope_conditional");
|
||||
optgroup->append_single_option_line("scarf_angle_threshold");
|
||||
optgroup->append_single_option_line("seam_slope_start_height");
|
||||
optgroup->append_single_option_line("seam_slope_entire_loop");
|
||||
optgroup->append_single_option_line("seam_slope_min_length");
|
||||
optgroup->append_single_option_line("seam_slope_steps");
|
||||
optgroup->append_single_option_line("seam_slope_inner_walls");
|
||||
optgroup->append_single_option_line("wipe_speed", "Seam");
|
||||
|
||||
auto page = add_options_page(L("Filament"), "spool");
|
||||
//BBS
|
||||
auto optgroup = page->new_optgroup(L("Basic information"), L"param_information");
|
||||
// Set size as all another fields for a better alignment
|
||||
//Option option = optgroup->get_option("filament_type");
|
||||
optgroup->append_single_option_line("resolution", "acr-move");
|
||||
optgroup->append_single_option_line("enable_arc_fitting", "acr-move");
|
||||
|
||||
page = add_options_page(L("Cooling"), "empty");
|
||||
optgroup->append_single_option_line("ironing_pattern");
|
||||
optgroup->append_single_option_line("ironing_speed");
|
||||
optgroup->append_single_option_line("ironing_flow");
|
||||
optgroup->append_single_option_line("ironing_spacing");
|
||||
optgroup->append_single_option_line("ironing_direction");
|
||||
|
||||
//line = { "", "" };
|
||||
//line.full_width = 1;
|
||||
//line.widget = [this](wxWindow* parent) {
|
||||
// return description_line_widget(parent, &m_cooling_description_line);
|
||||
//};
|
||||
//optgroup->append_line(line);
|
||||
optgroup = page->new_optgroup(L("Cooling for specific layer"), L"param_cooling");
|
||||
optgroup->append_single_option_line("wall_generator", "wall-generator");
|
||||
optgroup->append_single_option_line("wall_transition_angle");
|
||||
optgroup->append_single_option_line("wall_transition_filter_deviation");
|
||||
optgroup->append_single_option_line("wall_transition_length");
|
||||
optgroup->append_single_option_line("wall_distribution_count");
|
||||
optgroup->append_single_option_line("min_bead_width");
|
||||
optgroup->append_single_option_line("min_feature_size");
|
||||
|
||||
page = add_options_page(L("Advanced"), "advanced");
|
||||
optgroup = page->new_optgroup(L("Filament start G-code"), L"param_gcode", 0);
|
||||
optgroup->append_single_option_line("wall_sequence");
|
||||
optgroup->append_single_option_line("top_one_wall_type");
|
||||
optgroup->append_single_option_line("top_area_threshold");
|
||||
optgroup->append_single_option_line("only_one_wall_first_layer");
|
||||
optgroup->append_single_option_line("detect_overhang_wall");
|
||||
optgroup->append_single_option_line("max_travel_detour_distance");
|
||||
|
||||
optgroup->append_single_option_line("support_base_pattern_spacing", "support#base-pattern");
|
||||
optgroup->append_single_option_line("support_interface_top_layers", "support#base-pattern");
|
||||
optgroup->append_single_option_line("support_interface_bottom_layers", "support#base-pattern");
|
||||
//you cuo wu -- zan ding
|
||||
//optgroup->append_single_option_line("support_interface_spacing", "support#base-pattern");
|
||||
|
||||
|
||||
page = add_options_page(L("Strength"), "empty");
|
||||
optgroup = page->new_optgroup("", L"param_wall");
|
||||
optgroup->append_single_option_line("top_surface_pattern", "fill-patterns#Infill of the top surface and bottom surface");
|
||||
optgroup->append_single_option_line("bottom_surface_pattern", "fill-patterns#Infill of the top surface and bottom surface");
|
||||
optgroup->append_single_option_line("internal_solid_infill_pattern");
|
||||
|
||||
optgroup->append_single_option_line("sparse_infill_pattern", "fill-patterns#infill types and their properties of sparse");
|
||||
optgroup->append_single_option_line("filter_out_gap_fill");
|
||||
optgroup->append_single_option_line("bridge_angle", "parameter/strength-advance-settings");
|
||||
optgroup->append_single_option_line("minimum_sparse_infill_area", "parameter/strength-advance-settings");
|
||||
optgroup->append_single_option_line("infill_combination", "parameter/strength-advance-settings");
|
||||
|
||||
page = add_options_page(L("Speed"), "empty");
|
||||
optgroup = page->new_optgroup("", L"param_speed_first", 15);
|
||||
optgroup->append_single_option_line("default_print_speed");
|
||||
optgroup->append_single_option_line("initial_layer_speed");
|
||||
optgroup->append_single_option_line("initial_layer_infill_speed");
|
||||
|
||||
optgroup->append_single_option_line("outer_wall_speed");
|
||||
optgroup->append_single_option_line("inner_wall_speed");
|
||||
optgroup->append_single_option_line("sparse_infill_speed");
|
||||
optgroup->append_single_option_line("internal_solid_infill_speed");
|
||||
optgroup->append_single_option_line("top_surface_speed");
|
||||
optgroup->append_single_option_line("bridge_speed");
|
||||
optgroup->append_single_option_line("gap_infill_speed");
|
||||
optgroup->append_single_option_line("support_speed");
|
||||
optgroup->append_single_option_line("support_interface_speed");
|
||||
|
||||
optgroup->append_single_option_line("travel_speed");
|
||||
|
||||
optgroup->append_single_option_line("default_acceleration");
|
||||
optgroup->append_single_option_line("accel_to_decel_enable");
|
||||
optgroup->append_single_option_line("accel_to_decel_factor");
|
||||
|
||||
/* optgroup->append_single_option_line("default_jerk");
|
||||
optgroup->append_single_option_line("outer_wall_jerk");
|
||||
optgroup->append_single_option_line("inner_wall_jerk");
|
||||
optgroup->append_single_option_line("infill_jerk");
|
||||
optgroup->append_single_option_line("top_surface_jerk");
|
||||
optgroup->append_single_option_line("initial_layer_jerk");
|
||||
optgroup->append_single_option_line("travel_jerk");*/
|
||||
|
||||
page = add_options_page(L("Support"), "support");
|
||||
optgroup = page->new_optgroup("", L"param_support");
|
||||
optgroup->append_single_option_line("support_type", "support#support-types");
|
||||
optgroup->append_single_option_line("support_style", "support#support-styles");
|
||||
optgroup->append_single_option_line("support_threshold_angle", "support#threshold-angle");
|
||||
optgroup->append_single_option_line("support_on_build_plate_only");
|
||||
optgroup->append_single_option_line("support_critical_regions_only");
|
||||
optgroup->append_single_option_line("support_remove_small_overhang");
|
||||
|
||||
optgroup->append_single_option_line("raft_layers");
|
||||
optgroup->append_single_option_line("raft_contact_distance");
|
||||
optgroup->append_single_option_line("raft_first_layer_density");
|
||||
|
||||
optgroup->append_single_option_line("support_filament", "support#support-filament");
|
||||
optgroup->append_single_option_line("support_interface_filament", "support#support-filament");
|
||||
optgroup->append_single_option_line("support_interface_not_for_body", "support#support-filament");
|
||||
|
||||
optgroup->append_single_option_line("raft_first_layer_expansion"); // not only for raft, but for support too
|
||||
optgroup->append_single_option_line("tree_support_wall_count");
|
||||
optgroup->append_single_option_line("support_base_pattern", "support#base-pattern");
|
||||
optgroup->append_single_option_line("support_interface_pattern", "support#base-pattern");
|
||||
optgroup->append_single_option_line("support_bottom_interface_spacing");
|
||||
optgroup->append_single_option_line("support_object_xy_distance", "support");
|
||||
optgroup->append_single_option_line("bridge_no_support", "support#base-pattern");
|
||||
optgroup->append_single_option_line("max_bridge_length", "support#base-pattern");
|
||||
optgroup->append_single_option_line("independent_support_layer_height", "support");
|
||||
|
||||
optgroup->append_single_option_line("tree_support_branch_distance", "support#tree-support-only-options");
|
||||
optgroup->append_single_option_line("tree_support_branch_diameter", "support#tree-support-only-options");
|
||||
optgroup->append_single_option_line("tree_support_branch_angle", "support#tree-support-only-options");
|
||||
|
||||
page = add_options_page(L("Others"), "advanced");
|
||||
optgroup = page->new_optgroup("", L"param_adhension");
|
||||
optgroup->append_single_option_line("slicing_mode");
|
||||
optgroup->append_single_option_line("fibre_feed_rate");
|
||||
optgroup->append_single_option_line("print_sequence", "sequent-print");
|
||||
optgroup->append_single_option_line("spiral_mode", "spiral-vase");
|
||||
optgroup->append_single_option_line("spiral_mode_smooth", "spiral-vase#smooth");
|
||||
optgroup->append_single_option_line("spiral_mode_max_xy_smoothing", "spiral-vase#max-xy-smoothing");
|
||||
optgroup->append_single_option_line("timelapse_type", "Timelapse");
|
||||
|
||||
optgroup->append_single_option_line("fuzzy_skin", "parameter/fuzzy-skin");
|
||||
optgroup->append_single_option_line("fuzzy_skin_point_distance");
|
||||
optgroup->append_single_option_line("fuzzy_skin_thickness");
|
||||
|
||||
}
|
||||
|
||||
|
||||
void TabConfig::reload_config()
|
||||
{
|
||||
//this->compatible_widget_reload(m_compatible_printers);
|
||||
|
@ -4333,8 +4405,8 @@ void TabConfig::update_description_lines()
|
|||
{
|
||||
Tab::update_description_lines();
|
||||
|
||||
//if (!m_active_page)
|
||||
// return;
|
||||
if (!m_active_page)
|
||||
return;
|
||||
|
||||
//if (m_active_page->title() == "Cooling" && m_cooling_description_line)
|
||||
// m_cooling_description_line->SetText(from_u8(PresetHints::cooling_description(m_presets->get_edited_preset())));
|
||||
|
@ -4348,15 +4420,16 @@ void TabConfig::toggle_options() {
|
|||
|
||||
bool is_BBL_printer = false;
|
||||
if (m_preset_bundle) {
|
||||
is_BBL_printer =
|
||||
m_preset_bundle->configs.get_edited_preset().is_bbl_vendor_preset(
|
||||
m_preset_bundle);
|
||||
is_BBL_printer = m_preset_bundle->configs.get_edited_preset().is_bbl_vendor_preset(m_preset_bundle);
|
||||
}
|
||||
if (m_active_page->title() == "Quality") {
|
||||
|
||||
/* const Preset& preset = m_preset_bundle->configs.get_edited_preset();
|
||||
bool is_BBL = preset.is_system;*/
|
||||
//if (m_active_page->title() == "Quality") {
|
||||
//toggle_line("printable_area", !is_configed_by_BBL);//all printer can entry and view data
|
||||
//toggle_option("single_extruder_multi_material", have_multiple_extruders);
|
||||
//BBS: gcode_flavore of BBL printer can't be edited and changed
|
||||
toggle_option("gcode_flavor", !is_BBL_printer);
|
||||
//toggle_option("gcode_flavor", !is_BBL_printer);
|
||||
//toggle_option("thumbnail_size", !is_BBL_printer);
|
||||
//toggle_option("printer_structure", !is_BBL_printer);
|
||||
//toggle_option("use_relative_e_distances", !is_BBL_printer);
|
||||
|
@ -4370,21 +4443,37 @@ void TabConfig::toggle_options() {
|
|||
////BBS: extruder clearance of BBL printer can't be edited.
|
||||
//for (auto el : { "extruder_clearance_max_radius", "extruder_clearance_height_to_rod", "extruder_clearance_height_to_lid" })
|
||||
// toggle_option(el, !is_BBL_printer);
|
||||
}
|
||||
//}
|
||||
|
||||
if (m_active_page->title() == "Strength") {
|
||||
//toggle_line("time_lapse_gcode", m_preset_bundle->configs.get_edited_preset().config.opt_enum<PrinterStructure>("printer_structure") == PrinterStructure::psI3);
|
||||
/* if (m_active_page->title() == "Strength") {
|
||||
toggle_line("time_lapse_gcode", m_preset_bundle->configs.get_edited_preset().config.opt_enum<PrinterStructure>("printer_structure") == PrinterStructure::psI3);
|
||||
toggle_option("thumbnail_size", !is_BBL_printer);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
void TabConfig::update() {
|
||||
|
||||
//m_update_cnt++;
|
||||
//update_description_lines();
|
||||
////BBS: GUI refactor
|
||||
////Layout();
|
||||
//m_parent->Layout();
|
||||
|
||||
m_update_cnt++;
|
||||
|
||||
update_description_lines();
|
||||
//BBS: GUI refactor
|
||||
//Layout();
|
||||
m_parent->Layout();
|
||||
|
||||
toggle_options();
|
||||
|
||||
m_update_cnt--;
|
||||
|
||||
if (m_update_cnt == 0)
|
||||
wxGetApp().mainframe->on_config_changed(m_config);
|
||||
}
|
||||
void TabConfig::clear_pages() {
|
||||
Tab::clear_pages();
|
||||
}
|
||||
void Tab::update_ui_items_related_on_parent_preset(const Preset* selected_preset_parent)
|
||||
{
|
||||
|
@ -4816,7 +4905,7 @@ bool Tab::select_preset(std::string preset_name, bool delete_current /*=false*/,
|
|||
if (current_dirty || delete_current || print_tab || printer_tab)
|
||||
m_preset_bundle->update_compatible(
|
||||
update_compatible_type(technology_changed, print_tab, (print_tab ? this : wxGetApp().get_tab(Preset::TYPE_PRINT))->m_show_incompatible_presets),
|
||||
update_compatible_type(technology_changed, false, wxGetApp().get_tab(Preset::TYPE_FILAMENT)->m_show_incompatible_presets));
|
||||
update_compatible_type(technology_changed, false, wxGetApp().get_tab(Preset::TYPE_FILAMENT)->m_show_incompatible_presets));
|
||||
// Initialize the UI from the current preset.
|
||||
if (printer_tab)
|
||||
static_cast<TabPrinter*>(this)->update_pages();
|
||||
|
|
|
@ -0,0 +1,336 @@
|
|||
#include "Button.hpp"
|
||||
#include "Label.hpp"
|
||||
|
||||
#include <wx/dcclient.h>
|
||||
#include <wx/dcgraph.h>
|
||||
|
||||
BEGIN_EVENT_TABLE(Button, StaticBox)
|
||||
|
||||
EVT_LEFT_DOWN(Button::mouseDown)
|
||||
EVT_LEFT_UP(Button::mouseReleased)
|
||||
EVT_MOUSE_CAPTURE_LOST(Button::mouseCaptureLost)
|
||||
EVT_KEY_DOWN(Button::keyDownUp)
|
||||
EVT_KEY_UP(Button::keyDownUp)
|
||||
|
||||
// catch paint events
|
||||
EVT_PAINT(Button::paintEvent)
|
||||
|
||||
END_EVENT_TABLE()
|
||||
|
||||
/*
|
||||
* Called by the system of by wxWidgets when the panel needs
|
||||
* to be redrawn. You can also trigger this call by
|
||||
* calling Refresh()/Update().
|
||||
*/
|
||||
|
||||
Button::Button()
|
||||
: paddingSize(10, 8)
|
||||
{
|
||||
background_color = StateColor(
|
||||
std::make_pair(0xF0F0F1, (int) StateColor::Disabled),
|
||||
std::make_pair(0x37EE7C, (int) StateColor::Hovered | StateColor::Checked),
|
||||
std::make_pair(0x00AE42, (int) StateColor::Checked),
|
||||
//std::make_pair(0x009FF3, (int) StateColor::Checked),
|
||||
std::make_pair(*wxLIGHT_GREY, (int) StateColor::Hovered),
|
||||
std::make_pair(*wxWHITE, (int) StateColor::Normal));
|
||||
text_color = StateColor(
|
||||
std::make_pair(*wxLIGHT_GREY, (int) StateColor::Disabled),
|
||||
std::make_pair(*wxBLACK, (int) StateColor::Normal));
|
||||
}
|
||||
|
||||
Button::Button(wxWindow* parent, wxString text, wxString icon, long style, int iconSize, wxWindowID btn_id)
|
||||
: Button()
|
||||
{
|
||||
Create(parent, text, icon, style, iconSize, btn_id);
|
||||
}
|
||||
|
||||
bool Button::Create(wxWindow* parent, wxString text, wxString icon, long style, int iconSize, wxWindowID btn_id)
|
||||
{
|
||||
StaticBox::Create(parent, btn_id, wxDefaultPosition, wxDefaultSize, style);
|
||||
state_handler.attach({&text_color});
|
||||
state_handler.update_binds();
|
||||
//BBS set default font
|
||||
SetFont(Label::Body_14);
|
||||
wxWindow::SetLabel(text);
|
||||
if (!icon.IsEmpty()) {
|
||||
//BBS set button icon default size to 20
|
||||
this->active_icon = ScalableBitmap(this, icon.ToStdString(), iconSize > 0 ? iconSize : 20);
|
||||
}
|
||||
messureSize();
|
||||
return true;
|
||||
}
|
||||
|
||||
void Button::SetLabel(const wxString& label)
|
||||
{
|
||||
wxWindow::SetLabel(label);
|
||||
messureSize();
|
||||
Refresh();
|
||||
}
|
||||
|
||||
bool Button::SetFont(const wxFont& font)
|
||||
{
|
||||
wxWindow::SetFont(font);
|
||||
messureSize();
|
||||
Refresh();
|
||||
return true;
|
||||
}
|
||||
|
||||
void Button::SetIcon(const wxString& icon)
|
||||
{
|
||||
if (!icon.IsEmpty()) {
|
||||
//BBS set button icon default size to 20
|
||||
this->active_icon = ScalableBitmap(this, icon.ToStdString(), this->active_icon.px_cnt());
|
||||
}
|
||||
else
|
||||
{
|
||||
this->active_icon = ScalableBitmap();
|
||||
}
|
||||
Refresh();
|
||||
}
|
||||
|
||||
void Button::SetInactiveIcon(const wxString &icon)
|
||||
{
|
||||
if (!icon.IsEmpty()) {
|
||||
// BBS set button icon default size to 20
|
||||
this->inactive_icon = ScalableBitmap(this, icon.ToStdString(), this->active_icon.px_cnt());
|
||||
} else {
|
||||
this->inactive_icon = ScalableBitmap();
|
||||
}
|
||||
Refresh();
|
||||
}
|
||||
|
||||
void Button::SetMinSize(const wxSize& size)
|
||||
{
|
||||
minSize = size;
|
||||
messureSize();
|
||||
}
|
||||
|
||||
void Button::SetPaddingSize(const wxSize& size)
|
||||
{
|
||||
paddingSize = size;
|
||||
messureSize();
|
||||
}
|
||||
|
||||
void Button::SetTextColor(StateColor const& color)
|
||||
{
|
||||
text_color = color;
|
||||
state_handler.update_binds();
|
||||
Refresh();
|
||||
}
|
||||
|
||||
void Button::SetTextColorNormal(wxColor const &color)
|
||||
{
|
||||
text_color.setColorForStates(color, 0);
|
||||
Refresh();
|
||||
}
|
||||
|
||||
bool Button::Enable(bool enable)
|
||||
{
|
||||
bool result = wxWindow::Enable(enable);
|
||||
if (result) {
|
||||
wxCommandEvent e(EVT_ENABLE_CHANGED);
|
||||
e.SetEventObject(this);
|
||||
GetEventHandler()->ProcessEvent(e);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void Button::SetCanFocus(bool canFocus) { this->canFocus = canFocus; }
|
||||
|
||||
void Button::SetValue(bool state)
|
||||
{
|
||||
if (GetValue() == state) return;
|
||||
state_handler.set_state(state ? StateHandler::Checked : 0, StateHandler::Checked);
|
||||
}
|
||||
|
||||
bool Button::GetValue() const { return state_handler.states() & StateHandler::Checked; }
|
||||
|
||||
void Button::SetCenter(bool isCenter)
|
||||
{
|
||||
this->isCenter = isCenter;
|
||||
}
|
||||
|
||||
void Button::Rescale()
|
||||
{
|
||||
if (this->active_icon.bmp().IsOk())
|
||||
this->active_icon.msw_rescale();
|
||||
|
||||
if (this->inactive_icon.bmp().IsOk())
|
||||
this->inactive_icon.msw_rescale();
|
||||
|
||||
messureSize();
|
||||
}
|
||||
|
||||
void Button::paintEvent(wxPaintEvent& evt)
|
||||
{
|
||||
// depending on your system you may need to look at double-buffered dcs
|
||||
wxPaintDC dc(this);
|
||||
render(dc);
|
||||
}
|
||||
|
||||
/*
|
||||
* Here we do the actual rendering. I put it in a separate
|
||||
* method so that it can work no matter what type of DC
|
||||
* (e.g. wxPaintDC or wxClientDC) is used.
|
||||
*/
|
||||
void Button::render(wxDC& dc)
|
||||
{
|
||||
StaticBox::render(dc);
|
||||
int states = state_handler.states();
|
||||
wxSize size = GetSize();
|
||||
dc.SetBrush(*wxTRANSPARENT_BRUSH);
|
||||
// calc content size
|
||||
wxSize szIcon;
|
||||
wxSize szContent = textSize.GetSize();
|
||||
|
||||
ScalableBitmap icon;
|
||||
if (m_selected || ((states & (int)StateColor::State::Hovered) != 0))
|
||||
icon = active_icon;
|
||||
else
|
||||
icon = inactive_icon;
|
||||
int padding = 5;
|
||||
if (icon.bmp().IsOk()) {
|
||||
if (szContent.y > 0) {
|
||||
//BBS norrow size between text and icon
|
||||
szContent.x += padding;
|
||||
}
|
||||
szIcon = icon.GetBmpSize();
|
||||
szContent.x += szIcon.x;
|
||||
if (szIcon.y > szContent.y)
|
||||
szContent.y = szIcon.y;
|
||||
if (szContent.x > size.x) {
|
||||
int d = std::min(padding, szContent.x - size.x);
|
||||
padding -= d;
|
||||
szContent.x -= d;
|
||||
}
|
||||
}
|
||||
// move to center
|
||||
wxRect rcContent = { {0, 0}, size };
|
||||
if (isCenter) {
|
||||
wxSize offset = (size - szContent) / 2;
|
||||
if (offset.x < 0) offset.x = 0;
|
||||
rcContent.Deflate(offset.x, offset.y);
|
||||
}
|
||||
// start draw
|
||||
wxPoint pt = rcContent.GetLeftTop();
|
||||
if (icon.bmp().IsOk()) {
|
||||
pt.y += (rcContent.height - szIcon.y) / 2;
|
||||
dc.DrawBitmap(icon.bmp(), pt);
|
||||
//BBS norrow size between text and icon
|
||||
pt.x += szIcon.x + padding;
|
||||
pt.y = rcContent.y;
|
||||
}
|
||||
auto text = GetLabel();
|
||||
if (!text.IsEmpty()) {
|
||||
if (pt.x + textSize.width > size.x)
|
||||
text = wxControl::Ellipsize(text, dc, wxELLIPSIZE_END, size.x - pt.x);
|
||||
pt.y += (rcContent.height - textSize.height) / 2;
|
||||
dc.SetTextForeground(text_color.colorForStates(states));
|
||||
#if 0
|
||||
dc.SetBrush(*wxLIGHT_GREY);
|
||||
dc.SetPen(wxPen(*wxLIGHT_GREY));
|
||||
dc.DrawRectangle(pt, textSize.GetSize());
|
||||
#endif
|
||||
#ifdef __WXOSX__
|
||||
pt.y -= textSize.x / 2;
|
||||
#endif
|
||||
dc.DrawText(text, pt);
|
||||
}
|
||||
}
|
||||
|
||||
void Button::messureSize()
|
||||
{
|
||||
wxClientDC dc(this);
|
||||
dc.GetTextExtent(GetLabel(), &textSize.width, &textSize.height, &textSize.x, &textSize.y);
|
||||
wxSize szContent = textSize.GetSize();
|
||||
if (this->active_icon.bmp().IsOk()) {
|
||||
if (szContent.y > 0) {
|
||||
//BBS norrow size between text and icon
|
||||
szContent.x += 5;
|
||||
}
|
||||
wxSize szIcon = this->active_icon.GetBmpSize();
|
||||
szContent.x += szIcon.x;
|
||||
if (szIcon.y > szContent.y)
|
||||
szContent.y = szIcon.y;
|
||||
}
|
||||
wxSize size = szContent + paddingSize * 2;
|
||||
if (minSize.GetHeight() > 0)
|
||||
size.SetHeight(minSize.GetHeight());
|
||||
|
||||
if (minSize.GetWidth() > size.GetWidth())
|
||||
wxWindow::SetMinSize(minSize);
|
||||
else
|
||||
wxWindow::SetMinSize(size);
|
||||
}
|
||||
|
||||
void Button::mouseDown(wxMouseEvent& event)
|
||||
{
|
||||
event.Skip();
|
||||
pressedDown = true;
|
||||
if (canFocus)
|
||||
SetFocus();
|
||||
if (!HasCapture())
|
||||
CaptureMouse();
|
||||
}
|
||||
|
||||
void Button::mouseReleased(wxMouseEvent& event)
|
||||
{
|
||||
event.Skip();
|
||||
if (pressedDown) {
|
||||
pressedDown = false;
|
||||
if (HasCapture())
|
||||
ReleaseMouse();
|
||||
if (wxRect({0, 0}, GetSize()).Contains(event.GetPosition()))
|
||||
sendButtonEvent();
|
||||
}
|
||||
}
|
||||
|
||||
void Button::mouseCaptureLost(wxMouseCaptureLostEvent &event)
|
||||
{
|
||||
wxMouseEvent evt;
|
||||
mouseReleased(evt);
|
||||
}
|
||||
|
||||
void Button::keyDownUp(wxKeyEvent &event)
|
||||
{
|
||||
if (event.GetKeyCode() == WXK_SPACE || event.GetKeyCode() == WXK_RETURN) {
|
||||
wxMouseEvent evt(event.GetEventType() == wxEVT_KEY_UP ? wxEVT_LEFT_UP : wxEVT_LEFT_DOWN);
|
||||
event.SetEventObject(this);
|
||||
GetEventHandler()->ProcessEvent(evt);
|
||||
return;
|
||||
}
|
||||
if (event.GetEventType() == wxEVT_KEY_DOWN &&
|
||||
(event.GetKeyCode() == WXK_TAB || event.GetKeyCode() == WXK_LEFT || event.GetKeyCode() == WXK_RIGHT
|
||||
|| event.GetKeyCode() == WXK_UP || event.GetKeyCode() == WXK_DOWN))
|
||||
HandleAsNavigationKey(event);
|
||||
else
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
void Button::sendButtonEvent()
|
||||
{
|
||||
wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, GetId());
|
||||
event.SetEventObject(this);
|
||||
GetEventHandler()->ProcessEvent(event);
|
||||
}
|
||||
|
||||
#ifdef __WIN32__
|
||||
|
||||
WXLRESULT Button::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
|
||||
{
|
||||
if (nMsg == WM_GETDLGCODE) { return DLGC_WANTMESSAGE; }
|
||||
if (nMsg == WM_KEYDOWN) {
|
||||
wxKeyEvent event(CreateKeyEvent(wxEVT_KEY_DOWN, wParam, lParam));
|
||||
switch (wParam) {
|
||||
case WXK_RETURN: { // WXK_RETURN key is handled by default button
|
||||
GetEventHandler()->ProcessEvent(event);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return wxWindow::MSWWindowProc(nMsg, wParam, lParam);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
bool Button::AcceptsFocus() const { return canFocus; }
|
|
@ -0,0 +1,157 @@
|
|||
#include "SwitchButton.hpp"
|
||||
#include "Label.hpp"
|
||||
#include "StaticBox.hpp"
|
||||
|
||||
#include "../wxExtensions.hpp"
|
||||
#include "../Utils/MacDarkMode.hpp"
|
||||
|
||||
#include <wx/dcclient.h>
|
||||
#include <wx/dcgraph.h>
|
||||
#include <wx/dcmemory.h>
|
||||
|
||||
SwitchButton::SwitchButton(wxWindow* parent, wxWindowID id)
|
||||
: wxBitmapToggleButton(parent, id, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE | wxBU_EXACTFIT)
|
||||
, m_on(this, "toggle_on", 16)
|
||||
, m_off(this, "toggle_off", 16)
|
||||
, text_color(std::pair{0xfffffe, (int) StateColor::Checked}, std::pair{0x6B6B6B, (int) StateColor::Normal})
|
||||
, track_color(0xD9D9D9)
|
||||
, thumb_color(std::pair{0x009FF3, (int) StateColor::Checked}, std::pair{0xD9D9D9, (int) StateColor::Normal})
|
||||
{
|
||||
SetBackgroundColour(StaticBox::GetParentBackgroundColor(parent));
|
||||
Bind(wxEVT_TOGGLEBUTTON, [this](auto& e) { update(); e.Skip(); });
|
||||
SetFont(Label::Body_12);
|
||||
Rescale();
|
||||
}
|
||||
|
||||
void SwitchButton::SetLabels(wxString const& lbl_on, wxString const& lbl_off)
|
||||
{
|
||||
labels[0] = lbl_on;
|
||||
labels[1] = lbl_off;
|
||||
Rescale();
|
||||
}
|
||||
|
||||
void SwitchButton::SetTextColor(StateColor const& color)
|
||||
{
|
||||
text_color = color;
|
||||
}
|
||||
|
||||
void SwitchButton::SetTextColor2(StateColor const &color)
|
||||
{
|
||||
text_color2 = color;
|
||||
}
|
||||
|
||||
void SwitchButton::SetTrackColor(StateColor const& color)
|
||||
{
|
||||
track_color = color;
|
||||
}
|
||||
|
||||
void SwitchButton::SetThumbColor(StateColor const& color)
|
||||
{
|
||||
thumb_color = color;
|
||||
}
|
||||
|
||||
void SwitchButton::SetValue(bool value)
|
||||
{
|
||||
if (value != GetValue())
|
||||
wxBitmapToggleButton::SetValue(value);
|
||||
update();
|
||||
}
|
||||
|
||||
void SwitchButton::Rescale()
|
||||
{
|
||||
if (labels[0].IsEmpty()) {
|
||||
m_on.msw_rescale();
|
||||
m_off.msw_rescale();
|
||||
}
|
||||
else {
|
||||
SetBackgroundColour(StaticBox::GetParentBackgroundColor(GetParent()));
|
||||
#ifdef __WXOSX__
|
||||
auto scale = Slic3r::GUI::mac_max_scaling_factor();
|
||||
int BS = (int) scale;
|
||||
#else
|
||||
constexpr int BS = 1;
|
||||
#endif
|
||||
wxSize thumbSize;
|
||||
wxSize trackSize;
|
||||
wxClientDC dc(this);
|
||||
#ifdef __WXOSX__
|
||||
dc.SetFont(dc.GetFont().Scaled(scale));
|
||||
#endif
|
||||
wxSize textSize[2];
|
||||
{
|
||||
textSize[0] = dc.GetTextExtent(labels[0]);
|
||||
textSize[1] = dc.GetTextExtent(labels[1]);
|
||||
}
|
||||
float fontScale = 0;
|
||||
{
|
||||
thumbSize = textSize[0];
|
||||
auto size = textSize[1];
|
||||
if (size.x > thumbSize.x) thumbSize.x = size.x;
|
||||
else size.x = thumbSize.x;
|
||||
thumbSize.x += BS * 12;
|
||||
thumbSize.y += BS * 6;
|
||||
trackSize.x = thumbSize.x + size.x + BS * 10;
|
||||
trackSize.y = thumbSize.y + BS * 2;
|
||||
auto maxWidth = GetMaxWidth();
|
||||
#ifdef __WXOSX__
|
||||
maxWidth *= scale;
|
||||
#endif
|
||||
if (trackSize.x > maxWidth) {
|
||||
fontScale = float(maxWidth) / trackSize.x;
|
||||
thumbSize.x -= (trackSize.x - maxWidth) / 2;
|
||||
trackSize.x = maxWidth;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < 2; ++i) {
|
||||
wxMemoryDC memdc(&dc);
|
||||
#ifdef __WXMSW__
|
||||
wxBitmap bmp(trackSize.x, trackSize.y);
|
||||
memdc.SelectObject(bmp);
|
||||
memdc.SetBackground(wxBrush(GetBackgroundColour()));
|
||||
memdc.Clear();
|
||||
#else
|
||||
wxImage image(trackSize);
|
||||
image.InitAlpha();
|
||||
memset(image.GetAlpha(), 0, trackSize.GetWidth() * trackSize.GetHeight());
|
||||
wxBitmap bmp(std::move(image));
|
||||
memdc.SelectObject(bmp);
|
||||
#endif
|
||||
memdc.SetFont(dc.GetFont());
|
||||
if (fontScale) {
|
||||
memdc.SetFont(dc.GetFont().Scaled(fontScale));
|
||||
textSize[0] = memdc.GetTextExtent(labels[0]);
|
||||
textSize[1] = memdc.GetTextExtent(labels[1]);
|
||||
}
|
||||
auto state = i == 0 ? StateColor::Enabled : (StateColor::Checked | StateColor::Enabled);
|
||||
{
|
||||
#ifdef __WXMSW__
|
||||
wxGCDC dc2(memdc);
|
||||
#else
|
||||
wxDC &dc2(memdc);
|
||||
#endif
|
||||
dc2.SetBrush(wxBrush(track_color.colorForStates(state)));
|
||||
dc2.SetPen(wxPen(track_color.colorForStates(state)));
|
||||
dc2.DrawRoundedRectangle(wxRect({0, 0}, trackSize), trackSize.y / 2);
|
||||
dc2.SetBrush(wxBrush(thumb_color.colorForStates(StateColor::Checked | StateColor::Enabled)));
|
||||
dc2.SetPen(wxPen(thumb_color.colorForStates(StateColor::Checked | StateColor::Enabled)));
|
||||
dc2.DrawRoundedRectangle(wxRect({ i == 0 ? BS : (trackSize.x - thumbSize.x - BS), BS}, thumbSize), thumbSize.y / 2);
|
||||
}
|
||||
memdc.SetTextForeground(text_color.colorForStates(state ^ StateColor::Checked));
|
||||
memdc.DrawText(labels[0], {BS + (thumbSize.x - textSize[0].x) / 2, BS + (thumbSize.y - textSize[0].y) / 2});
|
||||
memdc.SetTextForeground(text_color2.count() == 0 ? text_color.colorForStates(state) : text_color2.colorForStates(state));
|
||||
memdc.DrawText(labels[1], {trackSize.x - thumbSize.x - BS + (thumbSize.x - textSize[1].x) / 2, BS + (thumbSize.y - textSize[1].y) / 2});
|
||||
memdc.SelectObject(wxNullBitmap);
|
||||
#ifdef __WXOSX__
|
||||
bmp = wxBitmap(bmp.ConvertToImage(), -1, scale);
|
||||
#endif
|
||||
(i == 0 ? m_off : m_on).bmp() = bmp;
|
||||
}
|
||||
}
|
||||
SetSize(m_on.GetBmpSize());
|
||||
update();
|
||||
}
|
||||
|
||||
void SwitchButton::update()
|
||||
{
|
||||
SetBitmap((GetValue() ? m_on : m_off).bmp());
|
||||
}
|
Loading…
Reference in New Issue