mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-27 11:40:13 +00:00
Compare commits
216 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b4f6bd7248 | ||
|
|
fb49b2f46a | ||
|
|
f1a14830b7 | ||
|
|
b849633110 | ||
|
|
f656cba56b | ||
|
|
6872d42f2e | ||
|
|
93e376bdbf | ||
|
|
efc82d01a7 | ||
|
|
057376882d | ||
|
|
d92640c49b | ||
|
|
bc25663db4 | ||
|
|
d9f99e0d27 | ||
|
|
0c549bf23b | ||
|
|
4de87fd358 | ||
|
|
01b77ccb55 | ||
|
|
e2aec83de2 | ||
|
|
d5c8b296a7 | ||
|
|
f2c944baa9 | ||
|
|
7070c5caa7 | ||
|
|
f2b7cfd40b | ||
|
|
79a02e5594 | ||
|
|
a88b1979d8 | ||
|
|
c1f604f1b6 | ||
|
|
cb29b38e1c | ||
|
|
6bee9b20dd | ||
|
|
6e35907f46 | ||
|
|
44d67151ee | ||
|
|
2f98f6a486 | ||
|
|
53085b01b6 | ||
|
|
424577ca4d | ||
|
|
636df6ebd6 | ||
|
|
e28c730c21 | ||
|
|
3d457bb681 | ||
|
|
fdd6ab0063 | ||
|
|
13a81b8374 | ||
|
|
11fc9d15a2 | ||
|
|
bf82904e66 | ||
|
|
3c58396c1f | ||
|
|
6291fd27b0 | ||
|
|
59f1fda131 | ||
|
|
8a8f352bad | ||
|
|
20ea9e2620 | ||
|
|
05f0002ef4 | ||
|
|
3507434e7a | ||
|
|
7c762b4455 | ||
|
|
6220b6af6f | ||
|
|
63f054493a | ||
|
|
cd35d00e06 | ||
|
|
0bc5a24595 | ||
|
|
ce08b0f81e | ||
|
|
5aa90274dc | ||
|
|
4b40604a27 | ||
|
|
adfc15efd8 | ||
|
|
1e43fc7283 | ||
|
|
a2307d9c21 | ||
|
|
2bec0f1178 | ||
|
|
c19870444e | ||
|
|
d423ad6c9e | ||
|
|
9c96fbb604 | ||
|
|
d6caeb585e | ||
|
|
e23f8b4a96 | ||
|
|
fbeca8f442 | ||
|
|
aebbfaac83 | ||
|
|
e26220ef93 | ||
|
|
ed93fc3005 | ||
|
|
ac64bd9435 | ||
|
|
6a548899fa | ||
|
|
ddea85d9f0 | ||
|
|
e8a725fb05 | ||
|
|
09c32f171d | ||
|
|
457db21751 | ||
|
|
e06393a22f | ||
|
|
e182827509 | ||
|
|
234b5ecfa6 | ||
|
|
b7b8d37ecd | ||
|
|
5d19466fdc | ||
|
|
7d46feb1a5 | ||
|
|
7169fdc8ae | ||
|
|
db9e0659f3 | ||
|
|
00057788ab | ||
|
|
117ab9e31a | ||
|
|
404430e4b2 | ||
|
|
0d53fa91ff | ||
|
|
b3037f0818 | ||
|
|
9fe8b762b6 | ||
|
|
0a2751b220 | ||
|
|
220b829279 | ||
|
|
c507771cff | ||
|
|
09daa2f027 | ||
|
|
4ea5168e9a | ||
|
|
2fdd554751 | ||
|
|
b96e1dcf4d | ||
|
|
80b000ed32 | ||
|
|
f0c553b0b7 | ||
|
|
f7b8f2f76f | ||
|
|
04efcf3959 | ||
|
|
3a02f66d9e | ||
|
|
69c830c520 | ||
|
|
49fe5fdb70 | ||
|
|
15da731cfe | ||
|
|
3e1b84029f | ||
|
|
0a427de273 | ||
|
|
b4cd770c8d | ||
|
|
3b697edd09 | ||
|
|
9f7ec8be64 | ||
|
|
7f23cd4676 | ||
|
|
82d1bed46b | ||
|
|
e9df74ec3c | ||
|
|
d34959287d | ||
|
|
ee5cfc3d78 | ||
|
|
ec4eee58a2 | ||
|
|
0ae92afc09 | ||
|
|
aebbdf57be | ||
|
|
16b3ca1f40 | ||
|
|
f8d882c046 | ||
|
|
0a5d923592 | ||
|
|
f330d2eb7b | ||
|
|
5c9e52a807 | ||
|
|
f5c76ce3c5 | ||
|
|
ee4aae2019 | ||
|
|
660415ae97 | ||
|
|
d36a9fda9d | ||
|
|
d9724ee7f3 | ||
|
|
a1c2f554d4 | ||
|
|
77f17c7dec | ||
|
|
e8737ec50e | ||
|
|
045e1576b6 | ||
|
|
b1c9f36a30 | ||
|
|
1b4e3a449d | ||
|
|
9ebbdaba28 | ||
|
|
779ab98762 | ||
|
|
105d0a85f9 | ||
|
|
a4281288ee | ||
|
|
30f40b601f | ||
|
|
a3a9850e13 | ||
|
|
0027968e99 | ||
|
|
ea8d560f3f | ||
|
|
95cf5ed303 | ||
|
|
7e7d7270ab | ||
|
|
a69667337d | ||
|
|
a4f1726ab1 | ||
|
|
3e1b3637c9 | ||
|
|
8627494972 | ||
|
|
be71983047 | ||
|
|
9274844548 | ||
|
|
075b0939e9 | ||
|
|
1cf0ecf9d6 | ||
|
|
b07798f5a2 | ||
|
|
ecb09e4ca4 | ||
|
|
f266655d24 | ||
|
|
a43cf64fb3 | ||
|
|
be61cb908f | ||
|
|
afc84a0dc0 | ||
|
|
b2f5f69619 | ||
|
|
cd519f021f | ||
|
|
f18dd10f0d | ||
|
|
92e4d9de1b | ||
|
|
e64284f5ab | ||
|
|
683f4e1c97 | ||
|
|
b9566cb180 | ||
|
|
e82ee56b7f | ||
|
|
2c1c50c72b | ||
|
|
f290ca2ba6 | ||
|
|
c9d11b3ab8 | ||
|
|
411695d0dd | ||
|
|
ea62d03142 | ||
|
|
c2aa222bbd | ||
|
|
872020e729 | ||
|
|
951c3fe16c | ||
|
|
85e8b17171 | ||
|
|
b2cba25a1e | ||
|
|
2cc01d4101 | ||
|
|
dbbe6de544 | ||
|
|
18be460bee | ||
|
|
c1c7312f2c | ||
|
|
342337c13e | ||
|
|
0849b359ce | ||
|
|
2eeec329b2 | ||
|
|
ef10fd987c | ||
|
|
b52105e798 | ||
|
|
fe15760aab | ||
|
|
3c3730db44 | ||
|
|
fa118d93f8 | ||
|
|
04507ee863 | ||
|
|
2c25af3694 | ||
|
|
87d7668768 | ||
|
|
d17a306f7c | ||
|
|
6a88d899b7 | ||
|
|
2a42bcfbef | ||
|
|
af8765734c | ||
|
|
3a3c79c3cc | ||
|
|
2cafbc7706 | ||
|
|
3860d1c862 | ||
|
|
5818c3404f | ||
|
|
87511da0c4 | ||
|
|
ebceea3491 | ||
|
|
fe1c11fc5d | ||
|
|
64178ef88d | ||
|
|
7c95d2d8b8 | ||
|
|
7144f1a2af | ||
|
|
70a27f2aca | ||
|
|
7a90b6c943 | ||
|
|
b59c0c790c | ||
|
|
6da8784102 | ||
|
|
c2c6b87b2c | ||
|
|
158e56abdf | ||
|
|
67fc201e83 | ||
|
|
d66f22ddc8 | ||
|
|
aed0485ba7 | ||
|
|
bd65007851 | ||
|
|
aa2f90d048 | ||
|
|
d343ff9d07 | ||
|
|
fe8fa90625 | ||
|
|
cc23df6821 | ||
|
|
d6859f5543 | ||
|
|
b6139514f5 |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -5,6 +5,7 @@
|
||||
/Library
|
||||
/Temp
|
||||
/Logs
|
||||
/obj
|
||||
/UnityPackageManager
|
||||
/Packages
|
||||
/ProjectSettings/XRSettings.asset
|
||||
@@ -12,6 +13,9 @@
|
||||
/Assets/Res.meta
|
||||
/Assets/Package
|
||||
/Assets/Package.meta
|
||||
/Assets/TextMesh Pro
|
||||
/Assets/TextMesh Pro.meta
|
||||
/Doc/*.meta
|
||||
|
||||
/Assets/XChartsDemo/demo_test.unity
|
||||
/Assets/XChartsDemo/demo_test.unity.meta
|
||||
|
||||
478
Assets/XCharts/CHANGELOG-EN.md
Normal file
478
Assets/XCharts/CHANGELOG-EN.md
Normal file
@@ -0,0 +1,478 @@
|
||||
|
||||
# 更新日志
|
||||
|
||||
[master](#master)
|
||||
[v2.2.0](#v2.2.0)
|
||||
[v2.1.1](#v2.1.1)
|
||||
[v2.1.0](#v2.1.0)
|
||||
[v2.0.1](#v2.0.1)
|
||||
[v2.0.0](#v2.0.0)
|
||||
[v2.0.0-preview.2](#v2.0.0-preview.2)
|
||||
[v2.0.0-preview.1](#v2.0.0-preview.1)
|
||||
[v1.6.3](#v1.6.3)
|
||||
[v1.6.1](#v1.6.1)
|
||||
[v1.6.0](#v1.6.0)
|
||||
[v1.5.2](#v1.5.2)
|
||||
[v1.5.1](#v1.5.1)
|
||||
[v1.5.0](#v1.5.0)
|
||||
[v1.4.0](#v1.4.0)
|
||||
[v1.3.1](#v1.3.1)
|
||||
[v1.3.0](#v1.3.0)
|
||||
[v1.2.0](#v1.2.0)
|
||||
[v1.1.0](#v1.1.0)
|
||||
[v1.0.5](#v1.0.5)
|
||||
[v1.0.4](#v1.0.4)
|
||||
[v1.0.3](#v1.0.3)
|
||||
[v1.0.2](#v1.0.2)
|
||||
[v1.0.1](#v1.0.1)
|
||||
[v1.0.0](#v1.0.0)
|
||||
[v0.8.3](#v0.8.3)
|
||||
[v0.8.2](#v0.8.2)
|
||||
[v0.8.1](#v0.8.1)
|
||||
[v0.8.0](#v0.8.0)
|
||||
[v0.5.0](#v0.5.0)
|
||||
[v0.1.0](#v0.1.0)
|
||||
|
||||
## master
|
||||
|
||||
## v2.2.0
|
||||
|
||||
* (2021.05.30) Release `v2.2.0` version
|
||||
* (2021.05.25) Improved `TextStyle` support for `alignment`
|
||||
* (2021.05.24) Fixed the problem that `Label` could not display properly when `PieChart` data were all `0`
|
||||
* (2021.05.24) Fixed an issue where `Serie Name` was not working on the `Add Serie` panel (#149)
|
||||
* (2021.05.23) Added `TextStyle` `autoWrap` to set whether to wrap lines
|
||||
* (2021.05.23) Added `TextStyle` `autoAlign` whether to set alignment automatically
|
||||
* (2021.05.23) Added `width` and `height` of `axisLabel` to support custom text length and width
|
||||
* (2021.05.23) Added `Axis` `iconStyle` and `icons` to support setting coordinate Axis labels to display icons
|
||||
* (2021.05.20) Added the `insertDataHead` parameter to `Serie` and `Axis` to control whether data is inserted into the head or tail
|
||||
* (2021.05.18) Optimize chart creation under `Editor` #147
|
||||
* (2021.05.16) Pull out the `Ganttchart` chart and provide it as an extension module
|
||||
* (2021.05.11) Added support for `VisualMap` to set color by `Piecewise`
|
||||
* (2021.05.09) Fixed an issue where `RingChart` could not set the background color of the ring #141
|
||||
* (2021.05.08) Added `Liquidchart` support for `Rect` shape
|
||||
* (2021.05.07) Improved the `Axis` scale performance #135
|
||||
* (2021.05.01) Added `Settings` parameters for painter's material #140
|
||||
* (2021.05.01) Fixed an issue where some super large or super small values could not be properly represented
|
||||
* (2021.04.29) Fixed an issue with `Radar` switching to `Circle` anomaly #139
|
||||
* (2021.04.29) Added `Settings`'s `reversePainter` to set whether or not `Serie` is drawn in reverse order
|
||||
* (2021.04.28) Fixed bug where `AxisLabel` displayed incorrectly with `DataRoom` (#138)
|
||||
* (2021.04.26) Fixed dynamically creating chart at runtime would be abnormal #137
|
||||
* (2021.04.26) Added support for `Barchart` to draw gradient borders
|
||||
* (2021.04.23) Added support for custom charts
|
||||
* (2021.04.22) Fixed bug where `Gauge` `axisLabel`'s text color could not be adjusted
|
||||
* (2021.04.13) Add the `ShowStarttick` and '`ShowEndTick` parameters of 'AxisTick' to control whether the first and last ticks are displayed
|
||||
* (2021.04.13) Improved multi-axis support #132
|
||||
|
||||
## v2.1.1
|
||||
|
||||
* (2021.04.13) Define the code and clear `Warning`
|
||||
* (2021.04.13) Fixed compatibility issues with `Unity` version
|
||||
* (2021.04.12) Fixed problem `missing class attribute 'ExtensionOfNativeClass'` after Theme refactoring #131
|
||||
|
||||
## v2.1.0
|
||||
|
||||
* (2021.04.07) Release `v2.1.0` version
|
||||
* (2021.03.31) Optimized and refactor `Theme` to solve problems with the same or missing references #118
|
||||
* (2021.03.30) Optimized `Tooltip` to support setting different category axis data #129
|
||||
* (2021.03.29) Optimized the custom draw callback API
|
||||
* (2021.03.25) Added `Ganttchart`
|
||||
* (2021.03.22) Added `Theme` `Unbind` button to unbind theme when copying chart #118
|
||||
* (2021.03.18) Fixed an issue where the check box after `Foldout` in `Inspector` could not be checked
|
||||
* (2021.03.18) Fixed an issue with `BarChart` displaying an exception in the `0` value
|
||||
* (2021.03.14) Fixed `Tooltip` indicator was not indicating the correct location in some cases
|
||||
* (2021.03.13) Optimized the editing experience and component refresh after `MulticomponentMode` is enabled #128
|
||||
* (2021.03.10) Added `CandlestickChart` #124
|
||||
* (2021.03.06) Added `PieChart`'s `minAngle` parameter to support setting minimum sector angle #117
|
||||
* (2021.03.05) Added support for `Legend` for several built-in ICONS #90
|
||||
* (2021.03.02) Added `DataRoom` support for value axes #71
|
||||
* (2021.03.02) Optimized `TextMeshPro` compatibility issue #125
|
||||
* (2021.03.01) Fixed display exception of hidden gameObjects when enabling and disabling a chart #125
|
||||
|
||||
## v2.0.1
|
||||
|
||||
* (2021.02.26) Fixed incorrect position of `Tooltip` in `HeatmapChart` #123
|
||||
* (2021.02.22) Fixed compatibility issues with `Unity` version
|
||||
* (2021.02.21) Added `Tooltip` parameter `ignoreDataShow`
|
||||
* (2021.02.19) Fixed an issue where charts could appear abnormal when under `LayoutGroup` control #121
|
||||
* (2021.02.18) Fixed an issue where the `Radar` could not refresh itself after parameter changing #122
|
||||
|
||||
## v2.0.0
|
||||
|
||||
* (2021.02.05) Release `v2.0.0` version
|
||||
* (2021.02.03) Fixed an issue where `Axisline` `OnZero` did not work on `YAxis` #116
|
||||
* (2021.01.29) Fixed incorrect display of `Tick` on `Category` axis when `BoundaryGap` and `alignWithLabel` are `True` #115
|
||||
* (2021.01.25) Optimized some details
|
||||
* (2021.01.22) Fixed a `Inpsector` displayed error
|
||||
|
||||
## v2.0.0-preview.2
|
||||
|
||||
* (2021.01.21) Release `v2.0.0-preview.2` version
|
||||
* (2021.01.21) Fixed an error about `AxisTick` in `Inpsector`
|
||||
* (2021.01.21) Fixed a build compatibility error
|
||||
* (2021.01.19) Added `XChartsSettings` `editorShowAllListData` parameter to configure whether to display all the list's data in Inspector
|
||||
|
||||
## v2.0.0-preview.1
|
||||
|
||||
* (2021.01.19) Release `v2.0.0-preview.1` version
|
||||
|
||||
## v1.6.3
|
||||
|
||||
* (2021.01.02) Release `v1.6.3` version
|
||||
* (2020.12.18) fixed an issue where updating data when `Animation` was not enabled caused the chart to keep refreshing
|
||||
* (2020.12.01) fixed an issue where a newly created chart on `Unity2020` could not be drawn properly
|
||||
|
||||
## v1.6.2
|
||||
|
||||
* (2020.11.22) Release `v1.6.2` version
|
||||
* (2020.11.22) Fixed an issue where `LineChart` draws an exception when the data is too dense #99
|
||||
* (2020.11.21) Fixed an issue where the scale position of `LineChart` could be abnormal if `alignWithLabel` was `true`
|
||||
* (2020.11.21) Fixed `Unity5` compatibility error reporting problem
|
||||
* (2020.11.13) Improved `RadarChart` `Indicator` support for `\n` line feed
|
||||
* (2020.11.12) Fixed `LineChart` reporting errors when the type was `Smooth` when the data was too secure #100
|
||||
* (2020.10.22) Optimized the support of `VisualMap` for `Piecewise` in `HeatmapChart`
|
||||
* (2020.09.22) Fixed `PieChart` inconsistent border size
|
||||
* (2020.09.18) Added `Remove All Chart Object` to Remove All child nodes under the Chart (automatically reinitialized)
|
||||
* (2020.09.18) Fixed `SerieLabel` also displayed after hided `Serie` by clicked the legend #94
|
||||
* (2020.09.18) Optimized coordinate axis calibration and text display #93
|
||||
* (2020.09.17) Fixed `Package` import missing `meta` file causing failure #92
|
||||
* (2020.09.08) Optimized the color of `Legend` to automatically match the custom color of `ItemStyle`
|
||||
* (2020.09.05) Optimized `LineChart` to display `XAxis1` without using `XAxis1`.
|
||||
* (2020.08.29) Added `toColor` and `toColor2` of `LineStyle` to set the horizontal gradient of `LineChart`. Cancel `ItemStyle` to set the horizontal gradient of `LineChart`.
|
||||
* (2020.08.29) Added the `onPointerClickPie` of `PieChart`, a callback function of click pie area.
|
||||
* (2020.08.29) Added the `onPointerClickBar` of `BarChart`, a callback function of click bar.
|
||||
|
||||
## v1.6.0
|
||||
|
||||
* (2020.08.24) Release `v1.6.0` version
|
||||
* (2020.08.23) Refactor code, replace `Color` with `Color32` for reduce implicit conversion (Can cause custom colors to lose, reference [Q&A 29](https://github.com/monitor1394/unity-ugui-XCharts/blob/master/Assets/XCharts/Documentation/xcharts-questions-and-answers-EN.md) to upgrade)
|
||||
* (2020.08.15) Optimized `PieChart` drawing performance effect #85
|
||||
* (2020.08.11) Added `LiquidChart` data change animation#83
|
||||
* (2020.08.11) Optimized `PieChart` text stack and lead line effects#85
|
||||
* (2020.08.08) Optimized `LineChart` the rendering performance of dense data
|
||||
* (2020.07.30) Added `LineChart` to configure gradient through `VisualMap` or `ItemStyle`#78
|
||||
* (2020.07.25) Fixed a problem with `LineChart` emerging abnormal in animation drawing#79
|
||||
* (2020.07.25) Fixed a problem with gradual discoloration on `LiquidChart` at `100%`#80
|
||||
* (2020.07.25) Added `RadarChart` support for `formatter` of `Tooltip`#77
|
||||
* (2020.07.23) Added `RingChart` ring gradient support#75
|
||||
* (2020.07.21) Added `formatter` of `AxisLabel` and `SerieLabel` to configure numeric formatting separately.
|
||||
* (2020.07.17) Added animation completion callback interface for `SerieAnimation`.
|
||||
* (2020.07.17) Optimized `Chart` under `ScrollView` without affecting the scrolling and dragging of `ScrollView`.
|
||||
* (2020.07.16) Fixed a problem with `Tooltip` that would also show up if it was blocked on top. #74
|
||||
* (2020.07.07) Fixed issue where `SerieLabel` position was out of order
|
||||
* (2020.07.07) Added `Tooltip` to the `offset` parameter
|
||||
* (2020.07.06) Added `Liquidchart`
|
||||
* (2020.07.01) Added `PolarChart`
|
||||
|
||||
## v1.5.2
|
||||
|
||||
* (2020.06.25) Fixed an issue where `BarChart` would draw a small number of bars when the value was `0`
|
||||
* (2020.06.24) Fixed an issue where `PieChart` was drawing abnormally after setting `Clockwise` #65
|
||||
* (2020.06.23) Optimized the drawing effect of `LineChart` when the difference between peak and valley is too large #64
|
||||
* (2020.06.18) Fixed an issue where `SerieLabel` might not be displayed when adding data again
|
||||
* (2020.06.17) Added `SerieData` to `serieSymbol` #66
|
||||
* (2020.06.17) Fixed `Check For Update` bug in `Unity 2018` version #63
|
||||
* (2020.06.16) Added `Serie` `avoidLabelOverlap` parameter to avoid pie chart TAB stacking #56
|
||||
* (2020.06.15) Fixed an issue where the `SerieLabel` control display could be deranged
|
||||
* (2020.06.11) Fixed `Check warning` not working
|
||||
* (2020.06.11) Fixed issue where `Piechart` and `Ringchart` were not displayed when data fraction was very small
|
||||
* (2020.06.11) Added `Tooltip` to `titleFormatter` to support configuration placeholder `{i}` to ignore not showing titles
|
||||
* (2020.06.07) Added `customFadeInDelay` and other custom data item delay and duration callback function #58
|
||||
* (2020.06.07) Optimized `Piechart` to display equal parts when all the data are `0` #59
|
||||
* (2020.06.04) Added `autoOffset` parameter setting for `SerieLabel` to determine whether the up and down offset is automatically determined
|
||||
* (2020.06.04) Added `Tooltip` to `AlwayShow` parameter setting to always show after triggering
|
||||
* (2020.06.04) Tooltip's `formatter` supports `{.1}` wildcards
|
||||
* (2020.06.04) Optimizes the number of `Legend` to automatically wrap to display #53
|
||||
|
||||
## v1.5.1
|
||||
|
||||
* (2020.06.03) 发布`v1.5.1`版本
|
||||
* (2020.06.02) 增加`Radar`的`ceilRate`,设置最大最小值的取整倍率
|
||||
* (2020.06.02) 优化`Tooltip`的`formatter`,支持`{c1:1-1:f1}`格式配置
|
||||
* (2020.05.31) 优化`Background`组件的生效条件,需要有单独的父节点(升级前需要自己处理旧的背景节点)
|
||||
* (2020.05.30) 优化`PieChart`支持设置`ignoreValue`不显示指定数据
|
||||
* (2020.05.30) 修复`RadarChart`为`Circle`时不绘制`SplitArea`的问题
|
||||
* (2020.05.30) 优化`RadarChart`在设置`max`为`0`时可自动刷新最大值
|
||||
* (2020.05.29) 修复`PieChart`设置`space`时只有一个数据时绘制异常的问题
|
||||
* (2020.05.27) 修复调用`UpdateDataName()`接口时不会自动刷新的问题
|
||||
* (2020.05.27) 优化`柱状图`的渐变色效果
|
||||
* (2020.05.24) 修复`Axis`同时设置`boundaryGap`和`alignWithLabel`时`Tick`绘制异常的问题
|
||||
* (2020.05.24) 优化版本更新检测
|
||||
* (2020.06.25) release `v1.5.2`
|
||||
|
||||
|
||||
## v1.5.0
|
||||
|
||||
* (2020.05.22) 发布`v1.5.0`版本
|
||||
* (2020.05.21) 增加`圆角柱图`支持渐变
|
||||
* (2020.05.21) 增加`Background`背景组件
|
||||
* (2020.05.19) 隐藏`Hierarchy`试图下自动生成的子节点
|
||||
* (2020.05.18) 增加`chartName`属性可指定图表的别称,可通过`XChartMgr.Instance.GetChart(chartName)`获取图表
|
||||
* (2020.05.16) 增加部分鼠标事件回调
|
||||
* (2020.05.15) 优化自带例子,`Demo`改名为`Example`
|
||||
* (2020.05.13) 增加`Serie`的`large`和`largeThreshold`参数配置折线图和柱状图的性能模式
|
||||
* (2020.05.13) 完善Demo,增加性能演示Demo
|
||||
* (2020.05.13) 优化性能,优化大数据绘制,重构代码
|
||||
* (2020.05.04) 增加`numericFormatter`参数可配置数值格式化显示,去掉`forceENotation`参数
|
||||
* (2020.04.28) 增加`自由锚点`支持,任意对齐方式
|
||||
* (2020.04.23) 优化`ScatterChart`的`Tooltip`显示效果
|
||||
* (2020.04.23) 增加`Tooltip`的`formatter`对`{.}`、`{c:0}`、`{c1:1}`的支持
|
||||
* (2020.04.19) 优化`LineChart`折线图的区域填充渐变效果
|
||||
* (2020.04.19) 增加`AxisLabel`的`onZero`参数可将`Label`显示在`0`刻度上
|
||||
* (2020.04.19) 增加`Serie`和`AxisLabel`的`showAsPositiveNumber`参数将负数数值显示为正数
|
||||
* (2020.04.18) 增加`Covert XY Axis`互换XY轴配置
|
||||
* (2020.04.17) 增加`Axis`可通过`inverse`参数设置坐标轴反转
|
||||
* (2020.04.16) 修复`Check warning`在`Unity2019.3`上的显示问题
|
||||
* (2020.04.16) 修复`PieChart`在设置`Space`参数后动画绘制异常的问题
|
||||
|
||||
## v1.4.0
|
||||
|
||||
* (2020.04.11) 发布`v1.4.0`版本
|
||||
* (2020.04.11) 增加`Check warning`检测功能
|
||||
* (2020.04.09) 修复`Legend`初始化异常的问题
|
||||
* (2020.04.08) 增加`PieChart`通过`ItemStyle`设置边框的支持
|
||||
* (2020.03.29) 增加`Axis`的`ceilRate`设置最大最小值的取整倍率
|
||||
* (2020.03.29) 增加`BarChart`可通过`itemStyle`的`cornerRadius`设置`圆角柱图`
|
||||
* (2020.03.29) 增加`itemStyle`的`cornerRadius`支持圆角矩形
|
||||
* (2020.03.24) 优化`Editor`参数编辑,兼容`Unity2019.3`及以上版本
|
||||
* (2020.03.24) 增加`Serie`在`inspector`上可进行调整顺序、添加和删除操作
|
||||
* (2020.03.23) 修复`Title`的`textStyle`和`subTextStyle`无效的问题
|
||||
* (2020.03.22) 增加`BarChart`通过`barType`参数设置`胶囊柱状图`
|
||||
* (2020.03.21) 增加`BarChart`和`HeatmapChart`可通过`ignore`参数设置忽略数据的支持
|
||||
* (2020.03.21) 增加`ItemStyle`的`tooltipFormatter`参数可单独配置`Serie`的`Tooltip`显示
|
||||
* (2020.03.20) 修复`X Axis 1`和`Y Axis 1`配置变更时不会自动刷新的问题
|
||||
* (2020.03.20) 增加`AxisTick`的`width`参数可单独设置坐标轴刻度的宽度
|
||||
* (2020.03.20) 增加`Serie`的`radarType`参数设置`多圈`和`单圈`雷达图
|
||||
* (2020.03.17) 增加`BarChart`可用`ItemStyle`的`backgroundColor`设置数据项背景颜色
|
||||
* (2020.03.17) 增加`SerieData`的`ItemStyle`和`Emphasis`可单独配置数据项样式的支持
|
||||
* (2020.03.15) 重构`EmptyCricle`类型的`Symbol`边宽取自`ItemStyle`的`borderWidth`参数
|
||||
* (2020.03.15) 重构`SerieSymbol`,去掉`color`和`opacity`参数,取自`ItemStyle`
|
||||
|
||||
## v1.3.1
|
||||
|
||||
* (2020.03.14) 发布`v1.3.1`版本
|
||||
* (2020.03.14) 修复`LineChart`开启`ingore`时部分数据可能绘制异常的问题
|
||||
* (2020.03.13) 修复`LineChart`的`label`偏移显示异常的问题
|
||||
|
||||
## v1.3.0
|
||||
|
||||
* (2020.03.11) 发布`v1.3.0`版本
|
||||
* (2020.03.11) 优化`LineChart`的`label`偏移显示
|
||||
* (2020.03.11) 优化清空并重新添加数据后的自动刷新问题
|
||||
* (2020.03.10) 增加`LineChart`的普通折线图可通过`ignore`参数设置忽略数据的支持
|
||||
* (2020.03.09) 增加`BarChart`可通过`ItemStyle`配置边框的支持
|
||||
* (2020.03.08) 增加`RingChart`环形图
|
||||
* (2020.03.05) 调整`Serie`的`arcShaped`参数重命名为`roundCap`
|
||||
* (2020.03.05) 增加运行时和非运行时参数变更自动刷新图表
|
||||
* (2020.02.26) 重构`Legend`图例,改变样式,增加自定义图标等设置
|
||||
* (2020.02.23) 增加`BaseChart.AnimationFadeOut()`渐出动画,重构动画系统
|
||||
* (2020.02.13) 增加`BaseChart.RefreshTooltip()`接口立即重新初始化`Tooltip`组件
|
||||
* (2020.02.13) 增加`Tooltip`的`textStyle`参数配置内容文本样式,去掉`fontSize`和`fontStyle`参数
|
||||
* (2020.02.13) 增加`TextStyle`的`lineSpacing`参数配置行间距
|
||||
* (2020.02.11) 增加`Radar`的`splitLine`参数配置分割线,去掉`lineStyle`参数
|
||||
* (2020.02.11) 增加`Tooltip`的`backgroundImage`参数配置背景图
|
||||
* (2020.02.11) 增加`Tooltip`的`paddingLeftRight`和`paddingTopBottom`参数配置文字和边框的间距
|
||||
* (2020.02.11) 增加`Tooltip`的`lineStyle`参数配置指示线样式
|
||||
* (2020.02.11) 增加`Axis`的`splitLine`参数控制分割线,去掉`showSplitLine`和`splitLineType`参数(更新时需要重新设置分割线相关设置)
|
||||
* (2020.02.10) 增加`Serie`的`clip`参数控制是否超出坐标系外裁剪(只适用于折线图、柱状图、散点图)
|
||||
* (2020.02.08) 增加`SerieSymbol`的`gap`参数控制图形标记的外留白距离
|
||||
* (2020.01.26) 增加`TextLimit`组件可以设置`AxisLabel`的文本自适应
|
||||
* (2020.01.20) 优化`Tooltip`设置`itemFormatter`时显示系列颜色
|
||||
* (2020.01.20) 增加`Radar`雷达图在`inspector`配置`areaStyle`的支持
|
||||
|
||||
## v1.2.0
|
||||
|
||||
* (2020.01.15) 发布`v1.2.0`版本
|
||||
* (2020.01.15) 增加`AxisLabel`格式化为整数的支持(`{value:f0}`)
|
||||
* (2020.01.15) 增加折线图对数轴`Log`的支持
|
||||
* (2020.01.09) 修复当设置`DataZoom`的`minShowNum`时可能异常的问题
|
||||
* (2020.01.08) 修复当设置`AxisLine`的`onZero`时刻度显示异常的问题
|
||||
* (2020.01.08) 增加`Mask`遮罩遮挡支持
|
||||
* (2019.12.21) 增加`Tooltip`的单个数据项和标题的字符串模版格式器
|
||||
* (2019.12.21) 增加`DataZoom`的最小显示数据个数`minShowNum`
|
||||
* (2019.12.20) 增加`Demo40_Radar.cs`雷达图代码操作`Demo`
|
||||
* (2019.12.20) 添加`RadarChart`相关API接口
|
||||
|
||||
## v1.1.0
|
||||
|
||||
* (2019.12.17) 发布`v1.1.0`版本
|
||||
* (2019.12.16) 修复`Overlay`模式下不显示`Tooltip`的问题
|
||||
* (2019.12.15) 增加`Title`的`TextStyle`支持
|
||||
* (2019.12.11) 修复`Legend`都隐藏时`Value轴`还显示数值的问题
|
||||
* (2019.12.11) 修复`Series->Data->Size`重置为0后设置无效的问题
|
||||
* (2019.12.06) 修复数据过小时`AxisLabel`直接科学计数法显示的问题
|
||||
* (2019.12.04) 优化和完善数据更新`UpdateData`接口
|
||||
* (2019.12.03) 增加圆环饼图的圆角支持,参数:`serie.arcShaped`
|
||||
* (2019.12.03) 增加数据更新动画,参数:`serie.animation.dataChangeEnable`
|
||||
* (2019.11.30) 增加`GaugeChart`仪表盘
|
||||
* (2019.11.22) 修复`BarChart`清空数据重新赋值后`SerieLabel`显示异常的问题
|
||||
* (2019.11.16) 修复`SerieLabel`设置`color`等参数不生效的问题
|
||||
|
||||
## v1.0.5
|
||||
|
||||
* (2019.11.12) 发布`v1.0.5`版本
|
||||
* (2019.11.12) 修复`2018.3`以下版本打开项目报错的问题
|
||||
* (2019.11.12) 增加`IconStyle`子组件,优化`SerieData`的图标配置
|
||||
* (2019.11.11) 修复`Serie`的图标显示在上层遮挡`Label`的问题
|
||||
* (2019.11.11) 修复饼图当数据过小时视觉引导线会穿透的的问题
|
||||
* (2019.11.09) 修复饼图添加数据时`Label`异常的问题
|
||||
* (2019.11.09) 优化结构,分离为`XCharts`和`XChartsDemo`两部分
|
||||
|
||||
## v1.0.4
|
||||
|
||||
* (2019.11.05) 发布`v1.0.4`版本
|
||||
* (2019.11.05) 增加`Radar`雷达组件文本样式参数配置支持
|
||||
* (2019.11.04) 修复`Unity2018.3`以下版本代码不兼容的问题
|
||||
* (2019.11.04) 优化`SerieLabel`过多时引起的性能问题
|
||||
|
||||
## v1.0.3
|
||||
|
||||
* (2019.11.03) 发布`v1.0.3`版本
|
||||
* (2019.11.03) 增加`Editor`快捷添加图表:`Hierarchy`试图下右键`XCharts->LineChart`
|
||||
* (2019.11.02) 优化非配置参数变量命名和访问权限,简化`API`
|
||||
|
||||
## v1.0.2
|
||||
|
||||
* (2019.10.31) 发布`v1.0.2`版本
|
||||
* (2019.10.31) 修复`prefab`预设制作报错的问题
|
||||
* (2019.10.31) 增加访问主题组件API:`BaseChart.theme`
|
||||
|
||||
## v1.0.1
|
||||
|
||||
* (2019.10.26) 发布`v1.0.1`版本
|
||||
* (2019.10.26) 修复版本检查功能在非运行时异常的问题
|
||||
* (2019.10.26) 增加科学计数法显示数值的支持(查阅`forceENotation`参数)
|
||||
* (2019.10.26) 增加`Axis`类目轴数据为空时的默认显示支持
|
||||
* (2019.10.26) 增加`Axis`数值轴的最大最小值可设置为小数的支持,优化极小数图表的表现效果
|
||||
|
||||
## v1.0.0
|
||||
|
||||
* (2019.10.25) 发布`v1.0.0`版本
|
||||
* (2019.10.23) 增加版本检测功能:`Component -> XCharts -> Check For Update`
|
||||
* (2019.10.22) 增加`Package Manager`安装的支持
|
||||
* (2019.10.20) 增加`Demo`首页`BarChart`的代码动态控制效果
|
||||
* (2019.10.18) 增加`Serie`的`barType`参数,可配置`斑马柱状图`
|
||||
* (2019.10.18) 增加`Serie`的`barPercentStack`参数,可配置`百分比堆叠柱状图`
|
||||
* (2019.10.16) 增加`Demo`首页`LineChart`的代码动态控制效果
|
||||
* (2019.10.15) 移除`Pie`组件,相关参数放到`Settings`中配置
|
||||
* (2019.10.15) 增加`Demo`首页,展示代码动态控制效果
|
||||
* (2019.10.14) 增加`RadarChart`、`ScatterChart`和`HeatmapChart`的起始动画效果
|
||||
* (2019.10.14) 增加`SerieData`的`radius`自定义数据项的半径
|
||||
* (2019.10.14) 增加`HeatmapChart`热力图
|
||||
* (2019.10.14) 增加`VisualMap`视觉映射组件
|
||||
* (2019.10.14) 增加`ItemStyle`数据项样式组件
|
||||
* (2019.10.14) 增加`Emphasis`高亮样式组件
|
||||
* (2019.10.10) 增加`Settings`全局参数配置组件,开放更多参数可配置
|
||||
* (2019.10.09) 增加`AreaStyle`的高亮相关参数配置鼠标悬浮时高亮之前区域
|
||||
* (2019.10.09) 优化`DataZoom`组件,增加双指缩放
|
||||
* (2019.10.05) 增加`SerieLabel`的`LineType`给饼图配置不同类型的视觉引导线
|
||||
* (2019.10.02) 增加`ScatterChart`同时对`Scatter`和`Line`的支持,实现折线图和散点图的组合图
|
||||
* (2019.10.01) 重构代码,废弃`Series.series`接口,用`Series.list`代替
|
||||
* (2019.10.01) 增加`customDrawCallback`自定义绘制回调
|
||||
* (2019.10.01) 增加`SmoothDash`平滑虚线的支持
|
||||
* (2019.09.30) 增加`Serie`采样类型`sampleType`的相关配置
|
||||
* (2019.09.29) 增加`SerieSymbol`关于显示间隔的相关配置
|
||||
* (2019.09.29) 重构代码:
|
||||
* `BaseChart`的`sampleDist`删除,`Serie`增加`lineSampleDist`
|
||||
* `BaseChart`的`minShowDataNumber`删除,`Serie`增加`minShow`
|
||||
* `BaseChart`的`maxShowDataNumber`删除,`Serie`增加`maxShow`
|
||||
* `BaseChart`的`maxCacheDataNumber`删除,`Serie`增加`maxCache`
|
||||
* `BaseChart`的`AddSerie()`接口参数调整
|
||||
* `BaseChart`的`UpdateData()`接口参数调整
|
||||
* `Axis`增加`maxCache`
|
||||
* (2019.09.28) 增加`LineChart`和`BarChart`同时对`Line`、`Bar`类型`Serie`的支持,实现折线图和柱状图的组合图
|
||||
* (2019.09.27) 增加`Axis`的`splitNumber`设置为`0`时表示绘制所有类目数据
|
||||
* (2019.09.27) 增加`SampleDist`采样距离的配置,对过密的曲线开启采样,优化绘制效率
|
||||
* (2019.09.27) 增加`XCharts问答`、`XChartsAPI接口`、`XCharts配置项手册`等文档
|
||||
* (2019.09.26) 增加`AnimationReset()`重置初始化动画接口
|
||||
* (2019.09.26) 优化`LineChart`的密集数据的曲线效果
|
||||
* (2019.09.25) 优化`SerieData`的自定义图标不与`SerieLabel`关联,可单独控制是否显示
|
||||
* (2019.09.24) 增加`SerieData`的自定义图标相关配置支持
|
||||
* (2019.09.23) 增加`Formatter`配置`Axis`的`AxisLabel`的格式化输出
|
||||
* (2019.09.23) 增加`Tooltip`的`FontSize`、`FontStyle`配置字体大小和样式
|
||||
* (2019.09.23) 增加`Formatter`配置`SerieLabel`、`Legend`、`Tooltip`的格式化输出
|
||||
* (2019.09.19) 增加`LineArrow`配置带箭头曲线
|
||||
* (2019.09.19) 增加`Tooltip`的`FixedWidth`、`FixedHeight`、`MinWidth`、`MinHeight`设置支持
|
||||
* (2019.09.18) 增加单条堆叠柱状图
|
||||
* (2019.09.18) 增加虚线`Dash`、点线`Dot`、点划线`DashDot`、双点划线`DashDotDot`等类型的折线图支持
|
||||
* (2019.09.17) 增加`AnimationEnabel()`启用或取消起始动画接口
|
||||
* (2019.09.17) 增加`Axis`的`Interval`强制设置坐标轴分割间隔
|
||||
* (2019.09.16) 去掉`Serie`中的旧版本数据兼容,不再支持`xData`和`yData`
|
||||
* (2019.09.06) 增加`Animation`在重新初始化数据时自启动功能
|
||||
* (2019.09.06) 增加`SerieLabel`的`Border`边框相关配置支持
|
||||
* (2019.09.05) 增加`PieChart`的`Animation`初始化动画配置支持
|
||||
* (2019.09.03) 增加`BarChart`的`Animation`初始化动画配置支持
|
||||
* (2019.09.02) 增加`LineChart`的`Animation`初始化动画配置支持
|
||||
* (2019.08.22) 增加`AxisName`的`Offset`偏移配置支持
|
||||
* (2019.08.22) 增加`AxisLine`的`Width`配置支持
|
||||
* (2019.08.20) 增加`SerieLabel`的背景宽高、文字边距、文字旋转的配置
|
||||
* (2019.08.20) 增加`BarChart`的`Label`配置支持
|
||||
* (2019.08.15) 增加`LineChart`的`Label`配置
|
||||
* (2019.08.15) 重构`BarChart`,移除`Bar`组件,相关参数统一放到`Serie`中配置
|
||||
* (2019.08.15) 重构`LineChart`,移除`Line`组件,相关参数统一放到`Serie`中配置
|
||||
|
||||
## v0.8.3
|
||||
|
||||
* (2019.08.15) 发布`v0.8.3`版本
|
||||
* (2019.08.14) 修复`PieChart`的`Label`无法自动更新的问题
|
||||
* (2019.08.13) 修复`UpdateData`接口无法更新数据的问题
|
||||
* (2019.08.07) 增加`SerieSymbol`的`Color`、`Opacity`配置
|
||||
|
||||
## v0.8.2
|
||||
|
||||
* (2019.08.07) 发布`v0.8.2`版本
|
||||
* (2019.08.07) 修复区域平滑折线图显示异常的问题
|
||||
* (2019.08.06) 修复`serie`系列数超过调色盘颜色数时获取的颜色异常的问题
|
||||
* (2019.08.06) 修复当`Axis`的`minMaxType`为`Custom`时`max`设置为`100`不生效的问题
|
||||
|
||||
## v0.8.1
|
||||
|
||||
* (2019.08.04) 发布`v0.8.1`版本
|
||||
* (2019.08.04) 修复`Inspector`中修改数据不生效的问题
|
||||
|
||||
## v0.8.0
|
||||
|
||||
* (2019.08.04) 发布`v0.8.0`版本
|
||||
* (2019.08.04) 优化`RadarChart`雷达图,增加多雷达图支持
|
||||
* (2019.08.01) 增加代码API注释文档,整理代码
|
||||
* (2019.07.29) 增加`Radius`、`Area`两种南丁格尔玫瑰图展示类型
|
||||
* (2019.07.29) 增加`SerieLabel`配置饼图标签,支持`Center`、`Inside`、`Outside`等显示位置
|
||||
* (2019.07.28) 增加`PieChart`多饼图支持
|
||||
* (2019.07.23) 优化`Theme`主题的自定义,切换主题时自定义配置不受影响
|
||||
* (2019.07.22) 增加`EffectScatter`类型的散点图
|
||||
* (2019.07.21) 增加`ScatterChart`散点图
|
||||
* (2019.07.21) 增加`SerieData`支持多维数据配置
|
||||
* (2019.07.20) 增加`Symbol`配置`Serie`标志图形的显示
|
||||
* (2019.07.19) 增加用代码添加动态正弦曲线的示例`Demo11_AddSinCurve`
|
||||
* (2019.07.19) 优化`Legend`的显示和控制
|
||||
* (2019.07.18) 优化抗锯齿,曲线更平滑
|
||||
* (2019.07.18) 增加`Tooltip`指示器类型,优化显示控制
|
||||
* (2019.07.15) 增加`Size`设置图表尺寸
|
||||
* (2019.07.14) 增加`二维数据`支持,XY轴都可以设置为数值轴
|
||||
* (2019.07.13) 增加`双坐标轴`支持,代码改动较大
|
||||
|
||||
## v0.5.0
|
||||
|
||||
* (2019.07.10) 发布`v0.5.0`版本
|
||||
* (2019.07.09) 增加`AxisLine`配置坐标轴轴线和箭头
|
||||
* (2019.07.03) 增加`AxisLabel`配置坐标轴`刻度标签`
|
||||
* (2019.07.02) 增加`selected`等相关参数配置`PieChart`的选中效果
|
||||
* (2019.06.30) 增加`SplitArea`配置坐标轴`分割区域`
|
||||
* (2019.06.29) 增加`AxisName`配置坐标轴`名称`
|
||||
* (2019.06.20) 增加`AreaAlpha`控制`RadarChart`的`Area`透明度
|
||||
* (2019.06.13) 增加`DataZoom`实现`区域缩放`
|
||||
* (2019.06.01) 增加`stepType`实现`LineChart`的`阶梯线图`
|
||||
* (2019.05.29) 增加`InSameBar`实现`BarChart`的`非堆叠同柱`
|
||||
* (2019.05.29) 增加`crossLabel`控制`Tooltip`的`十字准星指示器`
|
||||
* (2019.05.24) 增加`堆叠区域图`
|
||||
* (2019.05.16) 增加`AxisMinMaxType`控制坐标轴最大最小刻度
|
||||
* (2019.05.15) 完善数据接口
|
||||
* (2019.05.14) 增加X轴`AxisType.Value`模式支持
|
||||
* (2019.05.13) 增加负数数值轴支持
|
||||
* (2019.05.11) 增加自定义`Editor`编辑
|
||||
* (2019.03.21) 增加`Tooltip`
|
||||
* (2018.11.01) 增加`Default`、`Light`、`Dark`三种默认主题
|
||||
|
||||
## v0.1.0
|
||||
|
||||
* (2018.09.05) 发布`v0.1.0`版本
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9a4780a4fbaf446cc9d948b6b2c803d6
|
||||
guid: 042c85734494346adab5b3233234d261
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
@@ -1,6 +1,174 @@
|
||||
|
||||
# 更新日志
|
||||
|
||||
[master](#master)
|
||||
[v2.2.0](#v2.2.0)
|
||||
[v2.1.1](#v2.1.1)
|
||||
[v2.1.0](#v2.1.0)
|
||||
[v2.0.1](#v2.0.1)
|
||||
[v2.0.0](#v2.0.0)
|
||||
[v2.0.0-preview.2](#v2.0.0-preview.2)
|
||||
[v2.0.0-preview.1](#v2.0.0-preview.1)
|
||||
[v1.6.3](#v1.6.3)
|
||||
[v1.6.1](#v1.6.1)
|
||||
[v1.6.0](#v1.6.0)
|
||||
[v1.5.2](#v1.5.2)
|
||||
[v1.5.1](#v1.5.1)
|
||||
[v1.5.0](#v1.5.0)
|
||||
[v1.4.0](#v1.4.0)
|
||||
[v1.3.1](#v1.3.1)
|
||||
[v1.3.0](#v1.3.0)
|
||||
[v1.2.0](#v1.2.0)
|
||||
[v1.1.0](#v1.1.0)
|
||||
[v1.0.5](#v1.0.5)
|
||||
[v1.0.4](#v1.0.4)
|
||||
[v1.0.3](#v1.0.3)
|
||||
[v1.0.2](#v1.0.2)
|
||||
[v1.0.1](#v1.0.1)
|
||||
[v1.0.0](#v1.0.0)
|
||||
[v0.8.3](#v0.8.3)
|
||||
[v0.8.2](#v0.8.2)
|
||||
[v0.8.1](#v0.8.1)
|
||||
[v0.8.0](#v0.8.0)
|
||||
[v0.5.0](#v0.5.0)
|
||||
[v0.1.0](#v0.1.0)
|
||||
|
||||
## master
|
||||
|
||||
## v2.2.0
|
||||
|
||||
* (2021.05.30) 发布`v2.0.0`版本
|
||||
* (2021.05.25) 完善`TextStyle`的`alignment`的支持 (#150)
|
||||
* (2021.05.24) 修复`PieChart`数据全为`0`时`Label`无法正常显示的问题
|
||||
* (2021.05.24) 修复`Add Serie`面板上`Serie Name`不生效的问题 (#149)
|
||||
* (2021.05.23) 增加`TextStyle`的`autoWrap`设置是否自动换行
|
||||
* (2021.05.23) 增加`TextStyle`的`autoAlign`设置是否让系统自动设置对齐方式
|
||||
* (2021.05.23) 增加`AxisLabel`的`width`和`height`支持自定义文本的长宽
|
||||
* (2021.05.23) 增加`Axis`的`iconStyle`和`icons`支持设置坐标轴标签显示图标
|
||||
* (2021.05.20) 增加`Serie`和`Axis`的`insertDataToHead`参数控制数据插入头部还是尾部
|
||||
* (2021.05.18) 优化`Editor`下的图表创建 #147
|
||||
* (2021.05.16) 抽离`GanttChart`甘特图,通过扩展模块的方式来提供
|
||||
* (2021.05.11) 增加`VisualMap`对`Piecewise`分段设置颜色的支持
|
||||
* (2021.05.09) 修复`RingChart`无法设置环形的背景色的问题 #141
|
||||
* (2021.05.08) 增加`LiquidChart`的方形水位图支持
|
||||
* (2021.05.07) 优化`Axis`的刻度表现 #135
|
||||
* (2021.05.01) 增加`Settings`中关于关于材质球设置的参数 #140
|
||||
* (2021.05.01) 修复无法正确表示部分超大或超小数值的问题
|
||||
* (2021.04.29) 修复`Radar`切换到`Circle`异常的问题 #139
|
||||
* (2021.04.29) 增加`Settings`的`reversePainter`可设置`Serie`的绘制是否逆序
|
||||
* (2021.04.28) 增加`SerieData`的`ignore`可忽略当前数据项
|
||||
* (2021.04.28) 修复`DataZoom`下`AxisLabel`显示不准确的问题 #138
|
||||
* (2021.04.26) 修复运行时动态创建图表会异常的问题 #137
|
||||
* (2021.04.26) 增加`BarChart`绘制渐变边框的支持
|
||||
* (2021.04.23) 增加自定义图表支持
|
||||
* (2021.04.22) 修复`Gauge`的`AxisLabel`和文字颜色无法调整的问题
|
||||
* (2021.04.13) 增加`AxisTick`的`ShowStartTick`和`ShowEndTick`参数控制第一个和最后一个刻度是否显示
|
||||
* (2021.04.13) 完善多坐标轴的支持 #132
|
||||
|
||||
## v2.1.1
|
||||
|
||||
* (2021.04.13) 整理代码,清除`Warning`
|
||||
* (2021.04.13) 修复`Unity`版本兼容问题
|
||||
* (2021.04.12) 修复`Theme`重构后引起的`missing class attribute 'ExtensionOfNativeClass'`的问题 #131
|
||||
|
||||
## v2.1.0
|
||||
|
||||
* (2021.04.07) 发布`v2.1.0`版本
|
||||
* (2021.03.31) 优化和重构`Theme`,解决引用相同或丢失的问题 #118
|
||||
* (2021.03.30) 优化`Tooltip`支持设置不同的类目轴数据 #129
|
||||
* (2021.03.29) 优化自定义绘制回调接口,增加`onCustomDrawBeforeSerie`、`onCustomDrawAfterSerie`和`onCustomDrawTop`
|
||||
* (2021.03.25) 增加`GanttChart`甘特图
|
||||
* (2021.03.22) 增加`Theme`的`Unbind`按钮用于解绑复制图表时的主题 #118
|
||||
* (2021.03.18) 修复`Inspector`下`Foldout`后的勾选框无法选中的问题
|
||||
* (2021.03.18) 修复`BarChart`在`0`数值时显示异常的问题
|
||||
* (2021.03.14) 修复`Tooltip`的指示器在某些情况下指示位置不准的问题
|
||||
* (2021.03.13) 优化`MultiComponentMode`开启后的编辑体验和组件刷新 #128
|
||||
* (2021.03.10) 增加`CandlestickChart`K线图 #124
|
||||
* (2021.03.06) 增加`PieChart`的`minAngle`参数支持设置最小扇区角度 #117
|
||||
* (2021.03.05) 增加`Legend`几种内置图标的支持 #90
|
||||
* (2021.03.02) 增加`DataZoom`对数值轴的支持 #71
|
||||
* (2021.03.02) 优化`TextMeshPro`兼容问题 #125
|
||||
* (2021.03.01) 修复隐藏和显示图表时部分已隐藏的节点显示异常的问题 #125
|
||||
|
||||
## v2.0.1
|
||||
|
||||
* (2021.02.26) 修复`HeatmapChart`的`Tooltip`指示的位置不准的问题 #123
|
||||
* (2021.02.22) 修复`Unity`版本兼容问题
|
||||
* (2021.02.21) 增加`Tooltip`的`ignoreDataShow`参数
|
||||
* (2021.02.19) 修复图表在`LayoutGroup`控制下时可能显示错乱的问题 #121
|
||||
* (2021.02.18) 修复`Radar`参数变更后无法自刷新的问题 #122
|
||||
|
||||
## v2.0.0
|
||||
|
||||
* (2021.02.05) 发布`v2.0.0`版本
|
||||
* (2021.02.03) 修复`AxisLine`的`OnZero`对`YAxis`不生效的问题 #116
|
||||
* (2021.01.29) 修复`Category`轴在`BoundaryGap`和`AlignWithLabel`为`True`时`Tick`显示效果不对的问题 #115
|
||||
* (2021.01.25) 优化一些细节
|
||||
* (2021.01.22) 修复`Inpsector`上部分属性显示异常的问题
|
||||
|
||||
## v2.0.0-preview.2
|
||||
|
||||
* (2021.01.21) 发布`v2.0.0-preview.2`版本
|
||||
* (2021.01.21) 修复`Inpsector`上展开`AxisTick`时报错问题
|
||||
* (2021.01.21) 修复打包兼容报错问题
|
||||
* (2021.01.19) 增加`XChartsSettings`的`editorShowAllListData`参数配置是否在`Inspector`中显示列表的所有数据
|
||||
|
||||
## v2.0.0-preview.1
|
||||
|
||||
* (2021.01.19) 发布`v2.0.0-preview.1`版本
|
||||
|
||||
## v1.6.3
|
||||
|
||||
* (2021.01.02) 发布`v1.6.3`版本
|
||||
* (2020.12.18) 修复`Animation`不启用时更新数据会导致图表一直刷新的问题
|
||||
* (2020.12.01) 修复`Unity2020`上新创建的图表无法正常绘制的问题
|
||||
* (2020.11.22) 发布`v1.6.2`版本
|
||||
* (2020.11.22) 修复`LineChart`在数据过于密集时折线绘制异常的问题 #99
|
||||
* (2020.11.21) 修复`LineChart`的刻度位置在`alignWithLabel`为`true`时可能异常的问题
|
||||
* (2020.11.21) 修复`Unity5`兼容报错的问题
|
||||
* (2020.11.13) 完善`RadarChart`的`Indicator`对`\n`换行的支持
|
||||
* (2020.11.12) 修复`LineChart`当类型为`Smooth`时数据过密情况下报错的问题 #100
|
||||
* (2020.10.22) 完善`HeatmapChart`中`VisualMap`对`Piecewise`的支持
|
||||
* (2020.09.22) 修复`PieChart`边框大小不一致的问题
|
||||
|
||||
## v1.6.1
|
||||
|
||||
* (2020.09.19) 发布`v1.6.1`版本
|
||||
* (2020.09.19) 增加`Remove All Chart Object`移除图表下的所有子节点(会自动重新初始化)
|
||||
* (2020.09.18) 修复`SerieLabel`在点击图例隐藏`Serie`后还显示的问题#94
|
||||
* (2020.09.18) 优化`Axis`的类目轴刻度和文本显示#93
|
||||
* (2020.09.17) 修复`Package`导入时缺失`meta`文件导致失败的问题#92
|
||||
* (2020.09.08) 优化`Legend`的颜色可自动匹配`ItemStyle`的自定义颜色#89
|
||||
* (2020.09.05) 优化`LineChart`在不使用`XAxis1`时也能显示`XAxis1`
|
||||
* (2020.08.29) 增加`LineStyle`的`toColor`和`toColor2`设置`LineChart`的水平渐变,取消通过`ItemStyle`设置`LineChart`的水平渐变
|
||||
* (2020.08.29) 增加`PieChart`的`onPointerClickPie`点击扇形图扇区回调
|
||||
* (2020.08.29) 增加`BarChart`的`onPointerClickBar`点击柱形图柱条回调
|
||||
|
||||
## v1.6.0
|
||||
|
||||
* (2020.08.24) 发布`v1.6.0`版本
|
||||
* (2020.08.23) 重构代码,将与绘制相关的`Color`改为`Color32`,减少隐式转换(更新后会导致自定义的颜色丢失,可参考[问答29](https://github.com/monitor1394/unity-ugui-XCharts/blob/master/Assets/XCharts/Documentation/XCharts问答.md)进行升级)
|
||||
* (2020.08.15) 优化`PieChart`绘制表现效果#85
|
||||
* (2020.08.11) 增加`LiquidChart`数据变更动画#83
|
||||
* (2020.08.11) 优化`PieChart`文本堆叠和引线效果#85
|
||||
* (2020.08.08) 优化`LineChart`密集数据的绘制表现效果
|
||||
* (2020.07.30) 增加`LineChart`可通过`VisualMap`或`ItemStyle`配置渐变#78
|
||||
* (2020.07.25) 修复`LineChart`渐出动画绘制异常的问题#79
|
||||
* (2020.07.25) 修复`LiquidChart`在`100%`时渐变色会失效的问题#80
|
||||
* (2020.07.25) 增加`RadarChart`对`Tooltip`的`formatter`支持#77
|
||||
* (2020.07.23) 增加`RingChart`环形渐变支持#75
|
||||
* (2020.07.21) 增加`AxisLabel`和`SerieLabel`的`formatter`可单独配置数值格式化#68
|
||||
* (2020.07.17) 增加`SerieAnimation`动画完成回调接口
|
||||
* (2020.07.17) 优化`Chart`放在`ScrollView`下时不影响`ScrollView`的滚动和拖动
|
||||
* (2020.07.16) 修复`Tooltip`在上层有遮挡还会显示的问题#74
|
||||
* (2020.07.08) 优化`Scatter`类型`Serie`支持`Log`轴#70
|
||||
* (2020.07.07) 修复`SerieLabel`位置错乱的问题
|
||||
* (2020.07.07) 增加`Tooltip`的`offset`参数配置偏移
|
||||
* (2020.07.06) 增加`LiquidChart`水位图
|
||||
* (2020.07.01) 增加`PolarChart`极坐标图表
|
||||
|
||||
## v1.5.2
|
||||
|
||||
* (2020.06.25) 发布`v1.5.2`版本
|
||||
* (2020.06.25) 修复`BarChart`在数值为`0`时还会绘制一小部分柱条的问题
|
||||
* (2020.06.24) 修复`PieChart`在设置`clockwise`后绘制异常的问题#65
|
||||
@@ -19,6 +187,9 @@
|
||||
* (2020.06.04) 增加`Tooltip`的`alwayShow`参数设置触发后一直显示
|
||||
* (2020.06.04) 优化`Tooltip`的`formatter`支持`{.1}`通配符
|
||||
* (2020.06.04) 优化`Legend`数量过多时自动换行显示#53
|
||||
|
||||
## v1.5.1
|
||||
|
||||
* (2020.06.03) 发布`v1.5.1`版本
|
||||
* (2020.06.02) 增加`Radar`的`ceilRate`,设置最大最小值的取整倍率
|
||||
* (2020.06.02) 优化`Tooltip`的`formatter`,支持`{c1:1-1:f1}`格式配置
|
||||
@@ -31,6 +202,9 @@
|
||||
* (2020.05.27) 优化`柱状图`的渐变色效果
|
||||
* (2020.05.24) 修复`Axis`同时设置`boundaryGap`和`alignWithLabel`时`Tick`绘制异常的问题
|
||||
* (2020.05.24) 优化版本更新检测
|
||||
|
||||
## v1.5.0
|
||||
|
||||
* (2020.05.22) 发布`v1.5.0`版本
|
||||
* (2020.05.21) 增加`圆角柱图`支持渐变
|
||||
* (2020.05.21) 增加`Background`背景组件
|
||||
@@ -52,6 +226,9 @@
|
||||
* (2020.04.17) 增加`Axis`可通过`inverse`参数设置坐标轴反转
|
||||
* (2020.04.16) 修复`Check warning`在`Unity2019.3`上的显示问题
|
||||
* (2020.04.16) 修复`PieChart`在设置`Space`参数后动画绘制异常的问题
|
||||
|
||||
## v1.4.0
|
||||
|
||||
* (2020.04.11) 发布`v1.4.0`版本
|
||||
* (2020.04.11) 增加`Check warning`检测功能
|
||||
* (2020.04.09) 修复`Legend`初始化异常的问题
|
||||
@@ -72,9 +249,15 @@
|
||||
* (2020.03.17) 增加`SerieData`的`ItemStyle`和`Emphasis`可单独配置数据项样式的支持
|
||||
* (2020.03.15) 重构`EmptyCricle`类型的`Symbol`边宽取自`ItemStyle`的`borderWidth`参数
|
||||
* (2020.03.15) 重构`SerieSymbol`,去掉`color`和`opacity`参数,取自`ItemStyle`
|
||||
|
||||
## v1.3.1
|
||||
|
||||
* (2020.03.14) 发布`v1.3.1`版本
|
||||
* (2020.03.14) 修复`LineChart`开启`ingore`时部分数据可能绘制异常的问题
|
||||
* (2020.03.13) 修复`LineChart`的`label`偏移显示异常的问题
|
||||
|
||||
## v1.3.0
|
||||
|
||||
* (2020.03.11) 发布`v1.3.0`版本
|
||||
* (2020.03.11) 优化`LineChart`的`label`偏移显示
|
||||
* (2020.03.11) 优化清空并重新添加数据后的自动刷新问题
|
||||
@@ -98,6 +281,9 @@
|
||||
* (2020.01.26) 增加`TextLimit`组件可以设置`AxisLabel`的文本自适应
|
||||
* (2020.01.20) 优化`Tooltip`设置`itemFormatter`时显示系列颜色
|
||||
* (2020.01.20) 增加`Radar`雷达图在`inspector`配置`areaStyle`的支持
|
||||
|
||||
## v1.2.0
|
||||
|
||||
* (2020.01.15) 发布`v1.2.0`版本
|
||||
* (2020.01.15) 增加`AxisLabel`格式化为整数的支持(`{value:f0}`)
|
||||
* (2020.01.15) 增加折线图对数轴`Log`的支持
|
||||
@@ -108,6 +294,9 @@
|
||||
* (2019.12.21) 增加`DataZoom`的最小显示数据个数`minShowNum`
|
||||
* (2019.12.20) 增加`Demo40_Radar.cs`雷达图代码操作`Demo`
|
||||
* (2019.12.20) 添加`RadarChart`相关API接口
|
||||
|
||||
## v1.1.0
|
||||
|
||||
* (2019.12.17) 发布`v1.1.0`版本
|
||||
* (2019.12.16) 修复`Overlay`模式下不显示`Tooltip`的问题
|
||||
* (2019.12.15) 增加`Title`的`TextStyle`支持
|
||||
@@ -120,6 +309,9 @@
|
||||
* (2019.11.30) 增加`GaugeChart`仪表盘
|
||||
* (2019.11.22) 修复`BarChart`清空数据重新赋值后`SerieLabel`显示异常的问题
|
||||
* (2019.11.16) 修复`SerieLabel`设置`color`等参数不生效的问题
|
||||
|
||||
## v1.0.5
|
||||
|
||||
* (2019.11.12) 发布`v1.0.5`版本
|
||||
* (2019.11.12) 修复`2018.3`以下版本打开项目报错的问题
|
||||
* (2019.11.12) 增加`IconStyle`子组件,优化`SerieData`的图标配置
|
||||
@@ -127,21 +319,36 @@
|
||||
* (2019.11.11) 修复饼图当数据过小时视觉引导线会穿透的的问题
|
||||
* (2019.11.09) 修复饼图添加数据时`Label`异常的问题
|
||||
* (2019.11.09) 优化结构,分离为`XCharts`和`XChartsDemo`两部分
|
||||
|
||||
## v1.0.4
|
||||
|
||||
* (2019.11.05) 发布`v1.0.4`版本
|
||||
* (2019.11.05) 增加`Radar`雷达组件文本样式参数配置支持
|
||||
* (2019.11.04) 修复`Unity2018.3`以下版本代码不兼容的问题
|
||||
* (2019.11.04) 优化`SerieLabel`过多时引起的性能问题
|
||||
|
||||
## v1.0.3
|
||||
|
||||
* (2019.11.03) 发布`v1.0.3`版本
|
||||
* (2019.11.03) 增加`Editor`快捷添加图表:`Hierarchy`试图下右键`XCharts->LineChart`
|
||||
* (2019.11.02) 优化非配置参数变量命名和访问权限,简化`API`
|
||||
|
||||
## v1.0.2
|
||||
|
||||
* (2019.10.31) 发布`v1.0.2`版本
|
||||
* (2019.10.31) 修复`prefab`预设制作报错的问题
|
||||
* (2019.10.31) 增加访问主题组件API:`BaseChart.themeInfo`
|
||||
* (2019.10.31) 增加访问主题组件API:`BaseChart.theme`
|
||||
|
||||
## v1.0.1
|
||||
|
||||
* (2019.10.26) 发布`v1.0.1`版本
|
||||
* (2019.10.26) 修复版本检查功能在非运行时异常的问题
|
||||
* (2019.10.26) 增加科学计数法显示数值的支持(查阅`forceENotation`参数)
|
||||
* (2019.10.26) 增加`Axis`类目轴数据为空时的默认显示支持
|
||||
* (2019.10.26) 增加`Axis`数值轴的最大最小值可设置为小数的支持,优化极小数图表的表现效果
|
||||
|
||||
## v1.0.0
|
||||
|
||||
* (2019.10.25) 发布`v1.0.0`版本
|
||||
* (2019.10.23) 增加版本检测功能:`Component -> XCharts -> Check For Update`
|
||||
* (2019.10.22) 增加`Package Manager`安装的支持
|
||||
@@ -205,16 +412,28 @@
|
||||
* (2019.08.15) 增加`LineChart`的`Label`配置
|
||||
* (2019.08.15) 重构`BarChart`,移除`Bar`组件,相关参数统一放到`Serie`中配置
|
||||
* (2019.08.15) 重构`LineChart`,移除`Line`组件,相关参数统一放到`Serie`中配置
|
||||
|
||||
## v0.8.3
|
||||
|
||||
* (2019.08.15) 发布`v0.8.3`版本
|
||||
* (2019.08.14) 修复`PieChart`的`Label`无法自动更新的问题
|
||||
* (2019.08.13) 修复`UpdateData`接口无法更新数据的问题
|
||||
* (2019.08.07) 增加`SerieSymbol`的`Color`、`Opacity`配置
|
||||
|
||||
## v0.8.2
|
||||
|
||||
* (2019.08.07) 发布`v0.8.2`版本
|
||||
* (2019.08.07) 修复区域平滑折线图显示异常的问题
|
||||
* (2019.08.06) 修复`serie`系列数超过调色盘颜色数时获取的颜色异常的问题
|
||||
* (2019.08.06) 修复当`Axis`的`minMaxType`为`Custom`时`max`设置为`100`不生效的问题
|
||||
|
||||
## v0.8.1
|
||||
|
||||
* (2019.08.04) 发布`v0.8.1`版本
|
||||
* (2019.08.04) 修复从Inspector中修改数据不生效的问题
|
||||
* (2019.08.04) 修复`Inspector`中修改数据不生效的问题
|
||||
|
||||
## v0.8.0
|
||||
|
||||
* (2019.08.04) 发布`v0.8.0`版本
|
||||
* (2019.08.04) 优化`RadarChart`雷达图,增加多雷达图支持
|
||||
* (2019.08.01) 增加代码API注释文档,整理代码
|
||||
@@ -233,6 +452,9 @@
|
||||
* (2019.07.15) 增加`Size`设置图表尺寸
|
||||
* (2019.07.14) 增加`二维数据`支持,XY轴都可以设置为数值轴
|
||||
* (2019.07.13) 增加`双坐标轴`支持,代码改动较大
|
||||
|
||||
## v0.5.0
|
||||
|
||||
* (2019.07.10) 发布`v0.5.0`版本
|
||||
* (2019.07.09) 增加`AxisLine`配置坐标轴轴线和箭头
|
||||
* (2019.07.03) 增加`AxisLabel`配置坐标轴`刻度标签`
|
||||
@@ -252,4 +474,7 @@
|
||||
* (2019.05.11) 增加自定义`Editor`编辑
|
||||
* (2019.03.21) 增加`Tooltip`
|
||||
* (2018.11.01) 增加`Default`、`Light`、`Dark`三种默认主题
|
||||
|
||||
## v0.1.0
|
||||
|
||||
* (2018.09.05) 发布`v0.1.0`版本
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
## `BaseChart`
|
||||
|
||||
* `BaseChart.themeInfo`:主题组件`ThemeInfo`。
|
||||
* `BaseChart.theme`:主题组件`ThemeInfo`。
|
||||
* `BaseChart.title`:标题组件`Title`。
|
||||
* `BaseChart.legend`:图例组件`Legend`。
|
||||
* `BaseChart.tooltip`:提示框组件`Tooltip`。
|
||||
@@ -15,7 +15,10 @@
|
||||
* `BaseChart.chartWidth`:图表的宽。
|
||||
* `BaseChart.chartHeight`:图表的高。
|
||||
* `BaseChart.forceOpenRaycastTarget`:强制开启鼠标事件检测。一般不用手动设置,内部会自动判断是否需要检测。
|
||||
* `BaseChart.onCustomDraw`:自定义绘制回调。
|
||||
* `BaseChart.onCustomDraw`:自定义底部绘制回调。在绘制Serie前调用。
|
||||
* `BaseChart.onCustomDrawBeforeSerie`:自定义Serie绘制回调。在每个Serie绘制完前调用。
|
||||
* `BaseChart.onCustomDrawAfterSerie`:自定义Serie绘制回调。在每个Serie绘制完后调用。
|
||||
* `BaseChart.onCustomDrawTop`:自定义顶部绘制回调。在绘制Tooltip前调用。
|
||||
* `BaseChart.onPointerClick`:鼠标点击回调。
|
||||
* `BaseChart.onPointerDown`:鼠标按下回调。
|
||||
* `BaseChart.onPointerUp`:鼠标弹起回调。
|
||||
@@ -25,6 +28,7 @@
|
||||
* `BaseChart.onDrag`:鼠标拖拽回调。
|
||||
* `BaseChart.onEndDrag`:鼠标结束拖拽回调。
|
||||
* `BaseChart.onScroll`:鼠标滚动回调。
|
||||
* `BaseChart.onPointerClickPie`:点击柱条回调。参数:`eventData`, `serieIndex`, `dataIndex`
|
||||
* `BaseChart.SetSize(float width, float height)`: 设置图表的宽高(在非stretch pivot下才有效,其他情况需要自己调整RectTransform)。
|
||||
* `BaseChart.ClearData()`:清除所有数据,系列列表会保留,只是移除列表中系列的数据。
|
||||
* `BaseChart.RemoveData()`:清除所有系列和图例数据,系列列表也会被清除。
|
||||
@@ -63,24 +67,26 @@
|
||||
* `BaseChart.IsInChart(Vector2 local)`:坐标是否在图表范围内。
|
||||
* `BaseChart.IsInChart(float x, float y)`:坐标是否在图表范围内。
|
||||
* `BaseChart.EnableBackground(bool flag)`:开启背景组件。背景组件在`chart`受上层布局控制时无法开启。
|
||||
* `BaseChart.SetBasePainterMaterial(Material material)`:设置Base Painter的材质球。
|
||||
* `BaseChart.SetSeriePainterMaterial(Material material)`:设置Serie Painter的材质球。
|
||||
* `BaseChart.SetTopPainterMaterial(Material material)`:设置Top Painter的材质球。
|
||||
|
||||
## `CoordinateChart`
|
||||
|
||||
* `CoordinateChart.grid`:网格组件 `Grid`。
|
||||
* `CoordinateChart.xAxises`:左右两个 `X` 轴组件 `XAxis`。
|
||||
* `CoordinateChart.yAxises`:左右两个 `Y` 轴组件 `YAxis`。
|
||||
* `CoordinateChart.xAxes`:左右两个 `X` 轴组件 `XAxis`。
|
||||
* `CoordinateChart.yAxes`:左右两个 `Y` 轴组件 `YAxis`。
|
||||
* `CoordianteChart.xAxis0`:X轴(下)。
|
||||
* `CoordianteChart.xAxis1`:X轴(上)。
|
||||
* `CoordianteChart.xAxis0`:Y轴(左)。
|
||||
* `CoordianteChart.yAxis1`:Y轴(右)。
|
||||
* `CoordinateChart.dataZoom`:区域缩放组件 `DataZoom`。
|
||||
* `CoordinateChart.coordinateX`:坐标系的左下角坐标 `X`。
|
||||
* `CoordinateChart.coordinateY`:坐标系的左下角坐标 `Y`。
|
||||
* `CoordinateChart.coordinateWidth`:坐标系的宽。
|
||||
* `CoordinateChart.coordinateHeight`:坐标系的高。
|
||||
* `CoordinateChart.ClearAxisData()`:清除所有x轴和y轴的类目数据。
|
||||
* `CoordinateChart.AddXAxisData(string category, int xAxisIndex = 0)`:添加一个类目数据到指定的 `X` 轴。
|
||||
* `CoordinateChart.AddYAxisData(string category, int yAxisIndex = 0)`:添加一个类目数据到指定的 `Y` 轴。
|
||||
* `CoordinateChart.AddXAxisIcon(Sprite icon, int xAxisIndex = 0)`:添加一个类目数据到指定的 `X` 轴。
|
||||
* `CoordinateChart.AddYAxisIcon(Sprite icon, int yAxisIndex = 0)`:添加一个类目数据到指定的 `Y` 轴。。
|
||||
|
||||
* `CoordinateChart.IsValue()`:是否是纯数值坐标。
|
||||
* `CoordinateChart.RefreshDataZoom()`:在下一帧刷新DataZoom组件。
|
||||
* `CoordinateChart.RefreshAxisMinMaxValue()`:立即刷新数值坐标轴的最大最小值(更新坐标轴标签并触发重绘)。
|
||||
@@ -88,7 +94,7 @@
|
||||
* `CoordinateChart.IsInCooridate(Vector3 local)`:坐标是否在坐标轴内。
|
||||
* `CoordinateChart.IsInCooridate(float x, float y)`:坐标是否在坐标轴内。
|
||||
* `CoordinateChart.IsInCooridate(Vector2 local)`:坐标是否在坐标轴内。
|
||||
* `CoordinateChart.ClampInCoordinate(Vector3 pos)`:将坐标限制在坐标系内。
|
||||
* `CoordinateChart.ClampInGrid(grid, Vector3 pos)`:将坐标限制在坐标系内。
|
||||
* `CoordinateChart.CovertXYAxis(int index)`:转换X轴和Y轴的配置。
|
||||
* `CoordinateChart.UpdateCoordinate()`:更新坐标系原点和宽高。一般内部会自动更新,也可强制更新。
|
||||
* `CoordinateChart.SetMaxCache(int maxCache)`:设置可缓存的最大数据量。当数据量超过该值时,会自动删除第一个值再加入最新值。
|
||||
@@ -103,9 +109,8 @@
|
||||
* 继承自 `BaseChart`。
|
||||
* 继承自 `CoordinateChart`。
|
||||
|
||||
## `PieChart`
|
||||
* `BarChart.onPointerClickBar`:点击柱条回调。参数:`eventData`, `dataIndex`
|
||||
|
||||
* 继承自 `BaseChart`。
|
||||
|
||||
## `RadarChart`
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
* [DataZoom 区域缩放](#DataZoom)
|
||||
* [Grid 网格](#Grid)
|
||||
* [Legend 图例](#Legend)
|
||||
* [Polar 极坐标](#Polar)
|
||||
* [Radar 雷达](#Radar)
|
||||
* [Series 系列](#Series)
|
||||
* [Serie-Line 折线图](#Serie-Line)
|
||||
@@ -21,9 +22,12 @@
|
||||
* [Serie-Heatmap 热力图](#Serie-Heatmap)
|
||||
* [Serie-Gauge 仪表盘](#Serie-Gauge)
|
||||
* [Serie-Ring 环形图](#Serie-Ring)
|
||||
* [Serie-Liquid 水位图](#Serie-Liquid)
|
||||
* [Serie-Candlestick K线图](#Serie-Candlestick)
|
||||
* [Settings 设置](#Settings)
|
||||
* [Theme 主题](#Theme)
|
||||
* [Tooltip 提示框](#Tooltip)
|
||||
* [Vessel 容器](#Vessel)
|
||||
* [Title 标题](#Title)
|
||||
* [VisualMap 视觉映射](#VisualMap)
|
||||
|
||||
@@ -47,6 +51,7 @@
|
||||
* [SerieSymbol 图形标记](#SerieSymbol)
|
||||
* [TextLimit 文本自适应](#TextLimit)
|
||||
* [TextStyle 文本样式](#TextStyle)
|
||||
* [IconStyle 图标样式](#IconStyle)
|
||||
|
||||
## `Theme`
|
||||
|
||||
@@ -112,6 +117,14 @@
|
||||
相关参数:
|
||||
|
||||
* `show`:是否显示图例组件。
|
||||
* `iconType`:图例图标类型。有以下几种类型:
|
||||
* `Auto`:自动匹配。
|
||||
* `Custom`:自定义图标。
|
||||
* `EmptyCircle`:空心圆。
|
||||
* `Circle`:实心圆。
|
||||
* `Rect`:正方形。可通过`Setting`的`legendIconCornerRadius`参数调整圆角。
|
||||
* `Triangle`:三角形。
|
||||
* `Diamond`:菱形。
|
||||
* `selectedMode`:选择模式。控制是否可以通过点击图例改变系列的显示状态。默认开启图例选择,可以设成 `None` 关闭。有以下三种选择方式:
|
||||
* `Multiple`:多选。
|
||||
* `Single`:单选。
|
||||
@@ -138,6 +151,17 @@
|
||||
* `GetData(int index)`:获得指定索引的图例。
|
||||
* `GetIndex(string legendName)`:获得指定图例的索引。
|
||||
|
||||
## `Polar`
|
||||
|
||||
极坐标系组件。极坐标系,可以用于散点图和折线图。每个极坐标系拥有一个角度轴和一个半径轴。
|
||||
|
||||
相关参数:
|
||||
|
||||
* `show`:是否显示直角坐标系网格。
|
||||
* `center`:极坐标的中心点。数组的第一项是横坐标,第二项是纵坐标。当值为0-1之间时表示百分比,设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度。
|
||||
* `radius`:极坐标的半径。
|
||||
* `backgroundColor`:极坐标的背景色,默认透明。
|
||||
|
||||
## `Radar`
|
||||
|
||||
* `shape`:雷达图绘制类型。
|
||||
@@ -150,6 +174,7 @@
|
||||
* `center`:雷达图的中心点。数组的第一项是横坐标,第二项是纵坐标。当值为0-1之间时表示百分比,设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度。
|
||||
* `ceilRate`:最大最小值向上取整的倍率。默认为0时自动计算。
|
||||
* `splitNumber`:分割段数。默认为 `5`。
|
||||
* `isAxisTooltip`:是否Tooltip显示轴线上的所有数据。只对Mutiple类型的Radar有效。
|
||||
* `splitLine`:分割线条 [AxisSplitLine](#AxisSplitLine)。
|
||||
* `splitArea`:分割区域 [AxisSplitArea](#AxisSplitArea)。
|
||||
* `indicator`:是否显示指示器。
|
||||
@@ -180,6 +205,9 @@
|
||||
* `fontSize`:字体大小。
|
||||
* `fontStyle`:字体风格。
|
||||
* `lineSpacing`:行间距。
|
||||
* `alignment`:对齐方式。
|
||||
* `autoWrap`:是否自动换行。
|
||||
* `autoAlign`:是否让系统自动设置对齐方式。为true时系统自动选择对齐方式,为false时用alignment。
|
||||
|
||||
## `Tooltip`
|
||||
|
||||
@@ -216,11 +244,34 @@
|
||||
* `paddingLeftRight`:文字和边框的左右边距。
|
||||
* `paddingTopBottom`:文字和边框的上下边距。
|
||||
* `backgroundImage`:提示框的背景图。
|
||||
* `ignoreDataDefaultContent`:被忽略数据的默认显示字符信息。
|
||||
* `ignoreDataShow`:`(since v2.0.1)`是否显示忽略数据在`tooltip`上。 [defaut: `false`]。
|
||||
* `ignoreDataDefaultContent`:忽略数据的默认显示字符信息。
|
||||
* `alwayShow`:是否触发后一直显示。
|
||||
* `offset`:`(since v1.5.3)`提示框相对于鼠标位置的偏移。
|
||||
|
||||
* `lineStyle`:指示器线条样式 [LineStyle](#LineStyle)。
|
||||
* `textStyle`:显示内容文本样式 [TextStyle](#TextStyle)。
|
||||
|
||||
## `Vessel`
|
||||
|
||||
容器组件。一般用于LiquidChart。
|
||||
|
||||
相关参数:
|
||||
|
||||
* `show`:是否显示容器组件。
|
||||
* `shape`:容器形状。
|
||||
* `shapeWidth`:容器的厚度。
|
||||
* `gap`:间隙。容器和液体的间隙。
|
||||
* `center`:中心点。数组的第一项是横坐标,第二项是纵坐标。当值为0-1之间时表示百分比,设置成百分比时表示图表宽高最小值的百分比。
|
||||
* `backgroundColor`:背景色,默认透明。
|
||||
* `color`:容器颜色。当`autoColor`为`false`时生效。
|
||||
* `autoColor`:是否自动颜色。默认`true`。为`true`时颜色会和`serie`一致。
|
||||
* `radius`:半径。
|
||||
* `smoothness`:开启或关闭缩放区域功能。
|
||||
* `width`:容器的宽。shape为Rect时有效。
|
||||
* `height`:容器的高。shape为Rect时有效。
|
||||
* `cornerRadius`: 容器的圆角半径。用数组分别指定4个圆角半径(顺时针左上,右上,右下,左下)。shape为Rect时有效。
|
||||
|
||||
## `DataZoom`
|
||||
|
||||
区域缩放组件。用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。
|
||||
@@ -242,16 +293,19 @@
|
||||
* `showDetail`:是否显示 `detail`,即拖拽时候显示详细数值信息。
|
||||
* `zoomLock`:是否锁定选择区域(或叫做数据窗口)的大小。如果设置为 `true` 则锁定选择区域的大小,也就是说,只能平移,不能缩放。
|
||||
* ~~`realtime`:拖动时,是否实时更新系列的视图。如果设置为 `false`,则只在拖拽结束的时候更新。~~
|
||||
* ~~`backgroundColor`:组件的背景颜色。~~
|
||||
* `backgroundColor`:组件的背景颜色。
|
||||
* `selectedAreaColor`:框选区域颜色。
|
||||
* `bottom`:组件离容器下侧的距离。
|
||||
* `top`:组件离容器上侧的距离。
|
||||
* `left`:组件离容器左侧的距离。
|
||||
* `right`:组件离容器右侧的距离。
|
||||
* `height`:组件高度。
|
||||
* `rangeMode`:取值类型是取绝对值还是百分比。
|
||||
* `Percent`:百分比。
|
||||
* `start`:数据窗口范围的起始百分比。范围是:0 ~ 100。
|
||||
* `end`:数据窗口范围的结束百分比。范围是:0 ~ 100。
|
||||
* `scrollSensitivity`:缩放区域组件的敏感度。值越高每次缩放所代表的数据越多。
|
||||
* `fontSize`:字体大小。
|
||||
* `fontStyle`:字体样式。
|
||||
* `textStyle`:字体风格。
|
||||
* `minShowNum`:最小显示数据个数。当DataZoom放大到最大时,最小显示的数据个数。
|
||||
|
||||
## `VisualMap`
|
||||
@@ -266,8 +320,9 @@
|
||||
* ~~`selectedMode`:分段型的选择模式,支持以下模式:~~
|
||||
* ~~`Multiple`:多选。~~
|
||||
* ~~`Single`:单选。~~
|
||||
* `min`:允许的最小值。'min' 必须用户指定。[visualMap.min, visualMap.max] 形成了视觉映射的『定义域』。
|
||||
* `max`:允许的最大值。'max' 必须用户指定。[visualMap.min, visualMax.max] 形成了视觉映射的『定义域』。
|
||||
* `autoMinMax`:自动设置`min`,`max`的值。
|
||||
* `min`:允许的最小值。`autoMinMax`为`false`时必须指定。`[min, max]` 形成了视觉映射的『定义域』。
|
||||
* `max`:允许的最大值。`autoMinMax`为`false`时必须指定。`[min, max]` 形成了视觉映射的『定义域』。
|
||||
* `range`:指定手柄对应数值的位置。range 应在 min max 范围内。
|
||||
* ~~`text`:两端的文本,如 ['High', 'Low']。~~
|
||||
* ~~`textGap`:两端文字主体之间的距离,单位为px。~~
|
||||
@@ -316,15 +371,22 @@
|
||||
|
||||
## `XAxis`
|
||||
|
||||
直角坐标系 `grid` 中的 `X` 轴。单个 `grid` 组件最多只能放上下两个 `X` 轴。两个 `X` 轴存储在 `xAxises` 中。
|
||||
直角坐标系 `grid` 中的 `X` 轴。单个 `grid` 组件最多只能放上下两个 `X` 轴。两个 `X` 轴存储在 `xAxes` 中。
|
||||
|
||||
相关参数:
|
||||
|
||||
* `show`:是否显示 `X` 轴。默认 `xAxises[0]` 为 `true`,`xAxises[1]` 为 `false`。
|
||||
* `show`:是否显示 `X` 轴。默认 `xAxes[0]` 为 `true`,`xAxes[1]` 为 `false`。
|
||||
* `gridIndex`:坐标轴所在的 grid 的索引,默认位于第一个 grid。
|
||||
* `type`:坐标轴类型。默认为 `Category`。支持以下类型:
|
||||
* `Value`:数值轴,用于连续数据。
|
||||
* `Category`:类目轴,适用于离散的类目数据,为该类型时必须通过 `data` 设置类目数据。
|
||||
* `Log`:对数轴,适用于对数数据。
|
||||
* `position`:坐标轴在Grid中的位置`AxisPosition`。支持以下类型:
|
||||
* `Left`:左边。
|
||||
* `Right`:右边。
|
||||
* `Bottom`:底部。
|
||||
* `Top`:顶部。
|
||||
* `offset`:坐标轴相对默认位置的偏移。在相同position有多个坐标轴时有用。
|
||||
* `logBaseE`:对数轴是否以自然数 `e` 为底数,为 `true` 时 `logBase` 失效,只在对数轴(`type:'Log'`)中有效。
|
||||
* `logBase`:对数轴的底数,只在对数轴(`type:'Log'`)中有效。
|
||||
* `minMaxType`:坐标轴刻度最大最小值显示类型。默认为 `Default`。有以下三种类型:
|
||||
@@ -339,13 +401,16 @@
|
||||
* `boundaryGap`:坐标轴两边是否留白。默认为 `true`。
|
||||
* `maxCache`:类目数据中可缓存的最大数据量。默认为`0`没有限制,大于0时超过指定值会移除旧数据再插入新数据。
|
||||
* `inverse`:是否反向坐标轴。只在数值轴`Value`中有效。
|
||||
* `insertDataToHead`:添加新数据时是在列表的头部还是尾部加入。
|
||||
* `data`:类目数据,在类目轴(`type: 'Category'`)中有效。
|
||||
* `icons`:刻度的图标,在类目轴(`type: 'Category'`)中有效。
|
||||
* `axisLine`:坐标轴轴线相关配置 [AxisLine](#AxisLine)。
|
||||
* `axisName`:坐标轴名称相关配置 [AxisName](#AxisName)。
|
||||
* `axisTick`:坐标轴刻度相关配置 [AxisTick](#AxisTick)。
|
||||
* `axisLabel`:坐标轴刻度标签 [AxisLabel](#AxisLabel)。
|
||||
* `splitLine`:坐标轴轴线坐标轴分割线 [AxisSplitLine](#SplitLine)。
|
||||
* `splitArea`:坐标轴轴线坐标轴分割区域 [AxisSplitArea](#AxisSplitArea)。
|
||||
* `iconStyle`:坐标轴刻度图标的样式 [IconStyle](#IconStyle)。
|
||||
|
||||
相关接口:
|
||||
|
||||
@@ -372,11 +437,11 @@
|
||||
|
||||
## `YAxis`
|
||||
|
||||
直角坐标系 `grid` 中的 `Y` 轴。单个 `grid` 组件最多只能放左右两个 `Y` 轴。两个 `Y` 轴存储在 `yAxises` 中。
|
||||
直角坐标系 `grid` 中的 `Y` 轴。单个 `grid` 组件最多只能放左右两个 `Y` 轴。两个 `Y` 轴存储在 `yAxes` 中。
|
||||
|
||||
相关参数:
|
||||
|
||||
* `show`:是否显示 `Y` 轴。默认 `yAxises[0]` 为 `true`,`yAxises[1]` 为 `false`。
|
||||
* `show`:是否显示 `Y` 轴。默认 `yAxes[0]` 为 `true`,`yAxes[1]` 为 `false`。
|
||||
* `type`:坐标轴类型。默认为 `Value`。有以下两种类型:
|
||||
* `Value`:数值轴,用于连续数据。
|
||||
* `Category`:类目轴,适用于离散的类目数据,为该类型时必须通过 `data` 设置类目数据。
|
||||
@@ -473,6 +538,7 @@
|
||||
* `emphasis`:高亮样式 [Emphasis](#Emphasis)。
|
||||
* `animation`:起始动画 [SerieAnimation](#SerieAnimation)。
|
||||
* `lineArrow`:折线图的箭头 [LineArrow](#LineArrow)。
|
||||
* `insertDataToHead`:添加新数据时是在列表的头部还是尾部加入。
|
||||
* `data`:系列中的数据项 [SerieData](#SerieData) 数组,可以设置`1`到`n`维数据。
|
||||
|
||||
## `Serie-Line`
|
||||
@@ -483,7 +549,8 @@
|
||||
* `type`:`Line`。
|
||||
* `name`:系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
|
||||
* `stack`:数据堆叠。同个类目轴上系列配置相同的 `stack` 值后,后一个系列的值会在前一个系列的值上相加。
|
||||
* `axisIndex`:使用的坐标轴轴的 `index`,在单个图表实例中存在多个坐标轴轴的时候有用。
|
||||
* `xAxisIndex`:使用的坐标轴X轴的 `index`,在单个图表实例中存在多个坐标轴的时候有用。
|
||||
* `yAxisIndex`:使用的坐标轴Y轴的 `index`,在单个图表实例中存在多个坐标轴的时候有用。
|
||||
* `minShow`:系列显示数据的最小索引。
|
||||
* `maxShow`:系列显示数据的最大索引。
|
||||
* `maxCache`:系列中可缓存的最大数据量。默认为`0`没有限制,大于0时超过指定值会移除旧数据再插入新数据。
|
||||
@@ -529,7 +596,8 @@
|
||||
* `type`:`Bar`。
|
||||
* `name`:系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
|
||||
* `stack`:数据堆叠。同个类目轴上系列配置相同的 `stack` 值后,后一个系列的值会在前一个系列的值上相加。
|
||||
* `axisIndex`:使用的坐标轴轴的 `index`,在单个图表实例中存在多个坐标轴轴的时候有用。
|
||||
* `xAxisIndex`:使用的坐标轴X轴的 `index`,在单个图表实例中存在多个坐标轴的时候有用。
|
||||
* `yAxisIndex`:使用的坐标轴Y轴的 `index`,在单个图表实例中存在多个坐标轴的时候有用。
|
||||
* `minShow`:系列显示数据的最小索引。
|
||||
* `maxShow`:系列显示数据的最大索引。
|
||||
* `maxCache`:系列中可缓存的最大数据量。默认为`0`没有限制,大于0时超过指定值会移除旧数据再插入新数据。
|
||||
@@ -571,6 +639,7 @@
|
||||
* `space`:扇区间隙。
|
||||
* `center`:中心点坐标。当值为`0-1`的浮点数时表示百分比。
|
||||
* `radius`:半径。`radius[0]`为内径,`radius[1]`为外径。当内径大于0时即为圆环图。
|
||||
* `minAngle`:最小的扇区角度(0-360)。用于防止某个值过小导致扇区太小影响交互。
|
||||
* `roundCap`:是否启用圆弧效果。
|
||||
* `ignore`:是否开启忽略数据。当为 `true` 时,数据值为 `ignoreValue` 时不进行绘制,对应的`Label`和`Legend`也不会显示。
|
||||
* `ignoreValue`:忽略数据的默认值。默认值默认为0,当 `ignore` 为 `true` 才有效。
|
||||
@@ -674,10 +743,57 @@
|
||||
* `animation`:起始动画 [SerieAnimation](#SerieAnimation)。
|
||||
* `data`:系列中的数据项 [SerieData](#SerieData) 数组,可以设置`1`到`n`维数据。环形图的数据只有二维,`data[0]`表示当前值,`data[1]`表示最大值。
|
||||
|
||||
## `Serie-Liquid`
|
||||
|
||||
水位图系列。
|
||||
|
||||
* `show`:系列是否显示在图表上。
|
||||
* `type`:`Liquid`。
|
||||
* `name`:系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
|
||||
* `vesselIndex`:水位图所使用的`vessel`组件的`index`。
|
||||
* `min`:最小值。
|
||||
* `max`:最大值。
|
||||
* `waveLength`:水波长。
|
||||
* `waveHeight`:水波高。
|
||||
* `waveSpeed`:水波移动速度。正数时左移,负数时右移。
|
||||
* `waveOffset`:水波偏移。
|
||||
* `itemStyle`:环形图的圆环样式,包括设置背景颜色和边框等 [ItemStyle](#ItemStyle)。
|
||||
* `label`:图形上的文本标签 [SerieLabel](#SerieLabel),可用于说明图形的一些数据信息,比如值,名称等。
|
||||
* `animation`:起始动画 [SerieAnimation](#SerieAnimation)。
|
||||
* `data`:系列中的数据项 [SerieData](#SerieData) 数组,可以设置`1`到`n`维数据。水位图的数据一般只有一个,表示当前水位值,用`max`设置最大水位值。
|
||||
|
||||
## `Serie-Candlestick`
|
||||
|
||||
K线图系列。
|
||||
|
||||
* `show`:系列是否显示在图表上。
|
||||
* `type`:`Candlestick`。
|
||||
* `name`:系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
|
||||
* `xAxisIndex`:使用的坐标轴X轴的 `index`,在单个图表实例中存在多个坐标轴的时候有用。
|
||||
* `yAxisIndex`:使用的坐标轴Y轴的 `index`,在单个图表实例中存在多个坐标轴的时候有用。
|
||||
* `minShow`:系列显示数据的最小索引。
|
||||
* `maxShow`:系列显示数据的最大索引。
|
||||
* `maxCache`:系列中可缓存的最大数据量。默认为`0`没有限制,大于0时超过指定值会移除旧数据再插入新数据。
|
||||
* `clip`:是否裁剪超出坐标系部分的图形。
|
||||
* `ignore`:是否开启忽略数据。当为 `true` 时,数据值为 `ignoreValue` 时不进行绘制。
|
||||
* `ignoreValue`:忽略数据的默认值。默认值默认为0,当 `ignore` 为 `true` 才有效。
|
||||
* `showAsPositiveNumber`:将负数数值显示为正数。一般和`AxisLabel`的`showAsPositiveNumber`配合使用。仅在折线图和柱状图中有效。
|
||||
* `large`:是否开启大数据量优化,在数据图形特别多而出现卡顿时候可以开启。开启后配合 largeThreshold 在数据量大于指定阈值的时候对绘制进行优化。缺点:优化后不能自定义设置单个数据项的样式,不能显示Label,折线图不绘制Symbol。
|
||||
* `largeThreshold`:开启大数量优化的阈值。只有当开启了large并且数据量大于该阀值时才进入性能模式。
|
||||
* `itemStyle`:环形图的圆环样式,包括设置背景颜色和边框等 [ItemStyle](#ItemStyle)。
|
||||
* `emphasis`:高亮样式 [Emphasis](#Emphasis)。
|
||||
* `animation`:起始动画 [SerieAnimation](#SerieAnimation)。
|
||||
* `data`:系列中的数据项 [SerieData](#SerieData) 数组,K线图至少需要4个维度的数组`[open, close, lowest, highest]`。
|
||||
|
||||
## `Settings`
|
||||
|
||||
全局参数设置组件。一般情况下可使用默认值,当有需要时可进行调整。
|
||||
|
||||
* `reversePainter`:Painter是否逆序。逆序时index大的serie最先绘制。
|
||||
* `maxPainter`:默认最大Painter数据,当Serie数量大于maxPainter时会平均分配Painter。
|
||||
* `basePainterMaterial`:Base Pointer 材质球,设置后会影响Axis等。
|
||||
* `seriePainterMaterial`:Serie Pointer 材质球,设置后会影响所有Serie。
|
||||
* `topPainterMaterial`:Top Pointer 材质球,设置后会影响Tooltip等。
|
||||
* `lineSmoothStyle`:曲线平滑系数。通过调整平滑系数可以改变曲线的曲率,得到外观稍微有变化的不同曲线。
|
||||
* `lineSmoothness`:曲线平滑度。值越小曲线越平滑,但顶点数也会随之增加。当开启有渐变的区域填充时,数值越大渐变过渡效果越差。
|
||||
* `lineSegmentDistance`: 线段的分割距离。普通折线图的线是由很多线段组成,段数由该数值决定。值越小段数越多,但顶点数也会随之增加。当开启有渐变的区域填充时,数值越大渐变过渡效果越差。
|
||||
@@ -713,16 +829,15 @@
|
||||
* `show`:是否显示刻度标签。
|
||||
* `interval`:坐标轴刻度标签的显示间隔,在类目轴中有效。`0`表示显示所有标签,`1`表示隔一个隔显示一个标签,以此类推。
|
||||
* `inside`:刻度标签是否朝内,默认朝外。
|
||||
* `rotate`:刻度标签旋转的角度,在类目轴的类目标签显示不下的时候可以通过旋转防止标签之间重叠。
|
||||
* `margin`:刻度标签与轴线之间的距离。
|
||||
* `color`:刻度标签文字的颜色,默认取主题`Theme`的`axisTextColor`。
|
||||
* `fontSize`:文字的字体大小。
|
||||
* `fontStyle`:文字字体的风格。
|
||||
* `formatter`:图例内容字符串模版格式器。支持用 `\n` 换行。模板变量为图例名称 `{value}`,数值格式化通过`numericFormatter`。
|
||||
* `numericFormatter`:标准数字格式字符串。用于将数值格式化显示为字符串。使用`Axx`的形式:`A`是格式说明符的单字符,支持`C`货币、`D`十进制、`E`指数、`F`顶点数、`G`常规、`N`数字、`P`百分比、`R`往返过程、`X`十六进制等九种。`xx`是精度说明,从`0`-`99`。
|
||||
* `showAsPositiveNumber`:将负数数值显示为正数。一般和`Serie`的`showAsPositiveNumber`配合使用。
|
||||
* `onZero`:刻度标签显示在`0`刻度上。
|
||||
* `width`:刻度标签的宽。当为0时系统自动设置。
|
||||
* `height`:刻度标签的高。当为0时系统自动设置。
|
||||
* `textLimit`:文本自适应 [TextLimit](#TextLimit)。只在类目轴中有效。
|
||||
* `textStyle`:文本样式 [TextStyle](#TextStyle)。
|
||||
|
||||
## `AxisLine`
|
||||
|
||||
@@ -743,11 +858,7 @@
|
||||
* `Start`:坐标轴起始处。
|
||||
* `Middle`:坐标轴中间。
|
||||
* `End`:坐标轴末端。
|
||||
* `offset`:坐标轴名称与轴线之间的偏移。
|
||||
* `rotate`:坐标轴名字旋转,角度值。
|
||||
* `color`:坐标轴名称的文字颜色。
|
||||
* `fontSize`:坐标轴名称的文字大小。
|
||||
* `fontStyle`:坐标轴名称的文字风格。
|
||||
* `textStyle`:显示内容文本样式 [TextStyle](#TextStyle)。
|
||||
|
||||
## `AxisSplitLine`
|
||||
|
||||
@@ -767,6 +878,8 @@
|
||||
* `inside`:坐标轴刻度是否朝内,默认朝外。
|
||||
* `length`:坐标轴刻度的长度。
|
||||
* `width`:坐标轴刻度的宽度。默认为0时宽度和坐标轴一致。
|
||||
* `showStartTick`:是否显示第一个刻度。
|
||||
* `showEndTick`:是否显示最后一个刻度。
|
||||
|
||||
## `Emphasis`
|
||||
|
||||
@@ -777,13 +890,17 @@
|
||||
## `ItemStyle`
|
||||
|
||||
* `show`:是否启用。
|
||||
* `color`:颜色。
|
||||
* `color`:颜色。对于K线图,对应阳线的颜色。
|
||||
* `color0`:颜色。对于K线图,对应阴线的颜色。
|
||||
* `toColor`:渐变颜色1。
|
||||
* `toColor2`:渐变颜色2。只在折线图中有效。
|
||||
* `backgroundColor`:背景颜色。
|
||||
* `backgroundWidth`:背景的宽。
|
||||
* `centerColor`:中心区域的颜色。如环形图的中心区域。
|
||||
* `centerGap`:中心区域的间隙。如环形图的中心区域于最内环的间隙。
|
||||
* `borderType`:边框的类型。
|
||||
* `borderColor`:边框的颜色。
|
||||
* `borderColor`:边框的颜色。对于K线图,对应阳线的边框颜色。
|
||||
* `borderColor0`:边框的颜色。对于K线图,对应阴线的边框颜色。
|
||||
* `borderWidth`:边框宽。
|
||||
* `opacity`:透明度。
|
||||
* `tooltipFormatter`:提示框单项的字符串模版格式器。具体配置参考`Tooltip`的`formatter`。
|
||||
@@ -812,6 +929,8 @@
|
||||
* `DashDot`:点划线。
|
||||
* `DashDotDot`:双点划线。
|
||||
* `color`:线条颜色。默认和 `serie` 一致。
|
||||
* `toColor`:线的渐变颜色(需要水平方向渐变时)。
|
||||
* `toColor2`:线的渐变颜色2(需要水平方向三个渐变色的渐变时)。
|
||||
* `width`:线条宽。
|
||||
* `opacity`:线条的透明度。支持从 `0` 到 `1` 的数字,为 `0` 时不绘制该图形。
|
||||
|
||||
@@ -861,15 +980,10 @@
|
||||
* `numericFormatter`:标准数字格式字符串。用于将数值格式化显示为字符串。使用`Axx`的形式:`A`是格式说明符的单字符,支持`C`货币、`D`十进制、`E`指数、`F`顶点数、`G`常规、`N`数字、`P`百分比、`R`往返过程、`X`十六进制等九种。`xx`是精度说明,从`0`-`99`。
|
||||
* `offset`:距离图形元素的偏移。
|
||||
* `autoOffset`:是否开启自动偏移。当开启时,Y的偏移会自动判断曲线的开口来决定向上还是向下偏移。
|
||||
* `color`:自定义文字颜色,默认和系列的颜色一致。
|
||||
* `backgroundColor`:标签的背景色,默认无颜色。
|
||||
* `backgroundWidth`:标签的背景宽度。一般不用指定,不指定时则自动是文字的宽度。
|
||||
* `backgroundHeight`:标签的背景高度。一般不用指定,不指定时则自动是文字的高度。
|
||||
* `rotate`:标签的旋转。
|
||||
* `paddingLeftRight`:标签文字和边框的左右边距。
|
||||
* `paddingTopBottom`:标签文字和边框的上下边距。
|
||||
* `fontSize`:标签文字的字体大小。
|
||||
* `fontStyle`:标签文字的字体风格。
|
||||
* `line`:是否显示视觉引导线。在 `label` 位置 设置为 `'Outside'` 的时候会显示视觉引导线。
|
||||
* `lineType`:视觉引导线类型。支持以下几种类型:
|
||||
* `BrokenLine`:折线。
|
||||
@@ -882,6 +996,7 @@
|
||||
* `border`:是否显示边框。
|
||||
* `borderWidth`:边框宽度。
|
||||
* `borderColor`:边框颜色。
|
||||
* `textStyle`:显示内容文本样式 [TextStyle](#TextStyle)。
|
||||
|
||||
## `SerieSymbol`
|
||||
|
||||
@@ -911,6 +1026,16 @@
|
||||
* `interval`:显示图形标记的间隔。`0`表示显示所有标签,`1`表示隔一个隔显示一个标签,以此类推。
|
||||
* `forceShowLast`:是否强制显示最后一个图形标记。默认为 `false`。
|
||||
|
||||
## `IconStyle`
|
||||
|
||||
* `show`:是否显示图标。
|
||||
* `layer`:显示在上层还是在下层。
|
||||
* `sprite`:图标。
|
||||
* `color`:颜色。
|
||||
* `width`:图标的宽。
|
||||
* `height`:图标的高。
|
||||
* `offset`:位置偏移。
|
||||
|
||||
[返回首页](https://github.com/monitor1394/unity-ugui-XCharts)
|
||||
[XChartsAPI接口](XChartsAPI.md)
|
||||
[XCharts问答](XCharts问答.md)
|
||||
|
||||
@@ -6,32 +6,33 @@
|
||||
|
||||
[QA 1:如何调整坐标轴与背景的边距?](#如何调整坐标轴与背景的边距)
|
||||
[QA 2:如何让初始动画重新播放?](#如何让初始动画重新播放)
|
||||
[QA 3:如何自定义折线图、饼图等数据项的颜色?](#如何自定义折线图、饼图等数据项的颜色)
|
||||
[QA 4:如何格式化文字,如我想给坐标轴标签加上单位?](#如何格式化文字,如我想给坐标轴标签加上单位)
|
||||
[QA 3:如何自定义折线图、饼图等数据项的颜色?](#如何自定义折线图_饼图等数据项的颜色)
|
||||
[QA 4:如何格式化文字,如我想给坐标轴标签加上单位?](#如何格式化文字_如我想给坐标轴标签加上单位)
|
||||
[QA 5:如何让柱形图的柱子堆叠显示?](#如何让柱形图的柱子堆叠显示)
|
||||
[QA 6:如何让柱形图的柱子同柱但不重叠?](#如何让柱形图的柱子同柱但不重叠)
|
||||
[QA 7:如何调整柱形图的柱子宽度和间距?](#如何调整柱形图的柱子宽度和间距)
|
||||
[QA 8:如何调整柱形图单个柱子的颜色?](#如何调整柱形图单个柱子的颜色)
|
||||
[QA 9:如何调整图表的对齐方式?](#如何调整图表的对齐方式)
|
||||
[QA 10:可以显示超过1000以上的大数据吗?](#可以显示超过1000以上的大数据吗)
|
||||
[QA 11:折线图可以画虚线、点线、点划线吗?](#折线图可以画虚线、点线、点划线吗)
|
||||
[QA 12:如何限定Y轴(Value轴)的值范围?](#如何限定Y轴(Value轴)的值范围)
|
||||
[QA 11:折线图可以画虚线、点线、点划线吗?](#折线图可以画虚线_点线_点划线吗)
|
||||
[QA 12:如何限定Y轴(Value轴)的值范围?](#如何限定Y轴的值范围)
|
||||
[QA 13:如何自定义数值轴刻度大小?](#如何自定义数值轴刻度大小)
|
||||
[QA 14:如何在数据项顶上显示文本?](#如何在数据项顶上显示文本)
|
||||
[QA 15:如何给数据项自定义图标?](#如何给数据项自定义图标)
|
||||
[QA 16:锯齿太严重,如何让图表更顺滑?](#锯齿太严重,如何让图表更顺滑)
|
||||
[QA 17:为什么鼠标移上图表 Tooltip 不显示?](#为什么鼠标移上图表`Tooltip`不显示)
|
||||
[QA 18:如何取消 Tooltip 的竖线?](#如何取消`Tooltip`的竖线)
|
||||
[QA 19:如何自定义 Tooltip 的显示内容?](#如何自定义`Tooltip`的显示内容)
|
||||
[QA 20:如何让Y轴(数值轴)显示多位小数?](#如何让Y轴(数值轴)显示多位小数)
|
||||
[QA 16:锯齿太严重,如何让图表更顺滑?](#锯齿太严重_如何让图表更顺滑)
|
||||
[QA 17:为什么鼠标移上图表 Tooltip 不显示?](#为什么鼠标移上图表Tooltip不显示)
|
||||
[QA 18:如何取消 Tooltip 的竖线?](#如何取消Tooltip的竖线)
|
||||
[QA 19:如何自定义 Tooltip 的显示内容?](#如何自定义Tooltip的显示内容)
|
||||
[QA 20:如何让Y轴(数值轴)显示多位小数?](#如何让Y轴显示多位小数)
|
||||
[QA 21:如何用代码动态更新数据?](#如何用代码动态更新数据)
|
||||
[QA 22:如何显示图例?为什么有时候图例无法显示?](#如何显示图例?为什么有时候图例无法显示)
|
||||
[QA 22:如何显示图例?为什么有时候图例无法显示?](#如何显示图例_为什么有时候图例无法显示)
|
||||
[QA 23:如何做成预设?](#如何做成预设)
|
||||
[QA 24:如何在图表上画点画线等自定义内容?](#如何在图表上画点画线等自定义内容)
|
||||
[QA 25:如何实现心电图类似的数据移动效果?](#如何实现心电图类似的数据移动效果)
|
||||
[QA 26:如何使用背景组件?有什么条件限制?](#如何使用背景组件?有什么条件限制)
|
||||
[QA 26:如何使用背景组件?有什么条件限制?](#如何使用背景组件_有什么条件限制)
|
||||
[QA 27:Mesh can not have more than 65000 vertices?](#Mesh_cannot_have_more_than_65000_vertices)
|
||||
[QA 28:为什么serie里设置的参数运行后又被重置了?](#为什么serie里设置的参数运行后又被重置了)
|
||||
[QA 29:为什么升级到1.6.0版本后很多自定义颜色丢失了?应该如何升级?](#为什么升级到1_6_0版本后很多自定义颜色丢失了_应该如何升级)
|
||||
|
||||
## 如何调整坐标轴与背景的边距
|
||||
|
||||
@@ -41,11 +42,11 @@
|
||||
|
||||
答:调用`AnimationReset()`接口。
|
||||
|
||||
## 如何自定义折线图、饼图等数据项的颜色
|
||||
## 如何自定义折线图_饼图等数据项的颜色
|
||||
|
||||
答:通过`Theme`的`colorPalette`调整,或者部分`Serie`下的`LineStyle`和`ItemStyle`。
|
||||
|
||||
## 如何格式化文字,如我想给坐标轴标签加上单位
|
||||
## 如何格式化文字_如我想给坐标轴标签加上单位
|
||||
|
||||
答:通过`formatter`和`numericFormatter`参数,在`Legend`、`Axis`的`AxisLabel`、`Tooltop`、`Serie`的`Label`都提供该参数的配置。
|
||||
|
||||
@@ -73,11 +74,11 @@
|
||||
|
||||
答:可以。但`UGUI`对单个`Graphic`限制`65000`个顶点,所以太多的数据不一定能显示完全。可通过设置采样距离`sampleDist`开启采样简化过密曲线。也可以通过设置一些参数来减少图表的顶点数有助于显示更多数据。如缩小图表的尺寸,关闭或减少坐标轴的客户端绘制,关闭`Serie`的`symbol`和`label`显示等。折线图的普通线图`Normal`比平滑线图`Smooth`占用顶点数更少。`1.5.0`以上版本可以设置`large`和`largeThreshold`参数来开启性能模式。
|
||||
|
||||
## 折线图可以画虚线、点线、点划线吗
|
||||
## 折线图可以画虚线_点线_点划线吗
|
||||
|
||||
答:可以。通过`Serie`下的`lineType`选择线条样式。当要显示的数据过多(成千以上)数据间过密时建议使用`Normal`或者`Step`样式。
|
||||
|
||||
## 如何限定Y轴(Value轴)的值范围
|
||||
## 如何限定Y轴的值范围
|
||||
|
||||
答:设置`Axis`下的`minMaxType`为`Custom`,自定义`min`和`max`。
|
||||
|
||||
@@ -93,23 +94,23 @@
|
||||
|
||||
答:通过设置`Serie`的`data`下的数据项可单独设置`icon`相关参数。
|
||||
|
||||
## 锯齿太严重,如何让图表更顺滑
|
||||
## 锯齿太严重_如何让图表更顺滑
|
||||
|
||||
答:开启抗锯齿设置(在`Unity`里设置)。调整UI渲染模式为`Camera`模式,开启`MSAA`,设置`4`倍或更高抗锯齿。锯齿只能减少难以避免,像素越高锯齿越不明显。
|
||||
|
||||
## 为什么鼠标移上图表`Tooltip`不显示
|
||||
## 为什么鼠标移上图表Tooltip不显示
|
||||
|
||||
答:确认`Tooltip`是否开启。确认父节点是否关闭了鼠标事件。
|
||||
|
||||
## 如何取消`Tooltip`的竖线
|
||||
## 如何取消Tooltip的竖线
|
||||
|
||||
答:设置`Tooltip`的`type`为`None`。或者调整`lineStyle`的参数。
|
||||
|
||||
## 如何自定义`Tooltip`的显示内容
|
||||
## 如何自定义Tooltip的显示内容
|
||||
|
||||
答:自定义总的内容可以通过`Tooltip`的`formatter`。如果只是想调整所有的`serie`的显示格式可以用`itemFormatter`和`titleFormatter`结合。如果想每个`serie`的显示格式不一样,可以定制`serie`的`itemStyle`里的`tooltipFormatter`。具体的用法请查阅[XCharts配置项手册](XCharts配置项手册.md)。
|
||||
|
||||
## 如何让Y轴(数值轴)显示多位小数
|
||||
## 如何让Y轴显示多位小数
|
||||
|
||||
答:设置`Axis`下的`AxisLabel`中的`formatter`为`{value:f1}`或`{value:f2}`。`1.5.0`及以上版本通过`numericFormatter`设置。
|
||||
|
||||
@@ -117,7 +118,7 @@
|
||||
|
||||
答:请查阅`Example`下的代码,`Example13_LineSimple.cs`就是一个简单添加数据构建折线图的例子,其他`Demo`也都是通过代码控制不同的组件实现不同的功能,相关API请查看文档:[XChartsAPI接口](XChartsAPI.md) 。
|
||||
|
||||
## 如何显示图例?为什么有时候图例无法显示
|
||||
## 如何显示图例_为什么有时候图例无法显示
|
||||
|
||||
答:首先,你的`serie`里的`name`需有值不为空。然后开启`Legend`显示,里面的`data`可以默认为空,表示显示所有的图例。如果你只想显示部分`serie`的图例,在`data`中填入要显示的图例的`name`即可。如果`data`中的值都不是系列的`name`,那图例就不会显示。
|
||||
|
||||
@@ -133,9 +134,9 @@
|
||||
|
||||
答:参考`Example`目录下的`Example_Dynamic.cs`。主要通过设置`maxCache`参数实现。`axis`和`serie`都设置相同的`maxCache`。`maxCache`可固定数据个数,当数据超过设定时会先删除第一个在添加新数据,实现数据移动效果。
|
||||
|
||||
## 如何使用背景组件?有什么条件限制
|
||||
## 如何使用背景组件_有什么条件限制
|
||||
|
||||
答:设置`background`组件的`show`为`true`,但不一定就能激活背景组件。由于框架的局限性,背景组件有两个前提条件:一是图表的父节点不能用布局控制,因为背景组件和图表的节点关系是并行的,用了布局控制背景组件的位置就无法控制。二是图表的父节点只能有图表自己一个子节点,这是方便管理背景组件节点的需要,要不然并行关系的原因,容易错乱对不上。另外,调整图表的层级关系时最好先隐藏背景组件,这是会自动删除关联的背景组件节点。
|
||||
答:设置`background`组件的`show`为`true`。
|
||||
|
||||
## 区域折线图在用半透明颜色时有时候会一条叠加的线
|
||||
|
||||
@@ -149,6 +150,18 @@
|
||||
|
||||
答:检测下代码里是否调用了`RemoveData()`并重新添加`Serie`了。如果想保留`Serie`的配置可以只`ClearData()`,然后重新添加数据。
|
||||
|
||||
## 为什么升级到1_6_0版本后很多自定义颜色丢失了_应该如何升级
|
||||
|
||||
答:1.6.0版本为了减少隐式转换,将所有的绘制相关的`Color`都改为了`Color32`,所以会导致一些自定义的颜色的丢失。影响到的主要组件有:`ItemStyle`,`LineStyle`,`AreaStyle`,`Vessel`,`VisualMap`,`AxisSplitArea`,`AxisSplitLine`,`GaugeAxis`,`SerieLabel`等。可以用脚本[UpgradeChartColor.cs](https://github.com/monitor1394/unity-ugui-XCharts/blob/master/Assets/XCharts/Editor/Tools/UpgradeChartColor.cs)进行升级。
|
||||
升级步骤如下:
|
||||
1. 备份好你的项目。
|
||||
2. 先不升级`XCharts`,只下载或拷贝脚本[UpgradeChartColor.cs](https://github.com/monitor1394/unity-ugui-XCharts/blob/master/Assets/XCharts/Editor/Tools/UpgradeChartColor.cs)放到旧项目的`Editor`下,由于旧版本可能不存在某些新版本才有的图表或者属性配置,可能会编译错误,需要处理按3,4步骤处理一下。
|
||||
3. 若是由`itemStyle.toColor2`引起的编译报错,可将导出地方的`itemStyle.toColor2`改为`Color.clear`;导入的地方注释掉即可。
|
||||
4. 若是由`LiquidChart`引起的编译报错,将所有涉及`LiquidChart`的地方都注释掉即可。
|
||||
5. 编译通过后,通过`菜单栏->XCharts->ExportColorConfig`导出旧版本的颜色配置文件(配置文件默认保存到`Assets`下的`color.config`)。
|
||||
6. 升级`XCharts`到最新版本。
|
||||
7. 通过`菜单栏->XCharts->ImportColorConfig`将`color.config`导入即可恢复自定义的颜色(如果`color.config`不在升级后的项目的`Assets`下的话需要拷贝到此目录下)。
|
||||
|
||||
[返回首页](https://github.com/monitor1394/unity-ugui-XCharts)
|
||||
[XChartsAPI接口](XChartsAPI.md)
|
||||
[XCharts配置项手册](XCharts配置项手册.md)
|
||||
|
||||
148
Assets/XCharts/Documentation/xcharts-api-EN.md
Normal file
148
Assets/XCharts/Documentation/xcharts-api-EN.md
Normal file
@@ -0,0 +1,148 @@
|
||||
# XCharts API
|
||||
|
||||
[返回首页](https://github.com/monitor1394/unity-ugui-XCharts)
|
||||
[XCharts配置项手册](XCharts配置项手册.md)
|
||||
[XCharts问答](XCharts问答.md)
|
||||
|
||||
## `BaseChart`
|
||||
|
||||
* `BaseChart.theme`:主题组件`ThemeInfo`。
|
||||
* `BaseChart.title`:标题组件`Title`。
|
||||
* `BaseChart.legend`:图例组件`Legend`。
|
||||
* `BaseChart.tooltip`:提示框组件`Tooltip`。
|
||||
* `BaseChart.series`:系列列表`Series`。
|
||||
* `BaseChart.chartName`:图表的别称。
|
||||
* `BaseChart.chartWidth`:图表的宽。
|
||||
* `BaseChart.chartHeight`:图表的高。
|
||||
* `BaseChart.forceOpenRaycastTarget`:强制开启鼠标事件检测。一般不用手动设置,内部会自动判断是否需要检测。
|
||||
* `BaseChart.onCustomDraw`:自定义底部绘制回调。在绘制Serie前调用。
|
||||
* `BaseChart.onCustomDrawBeforeSerie`:自定义Serie绘制回调。在每个Serie绘制完前调用。
|
||||
* `BaseChart.onCustomDrawAfterSerie`:自定义Serie绘制回调。在每个Serie绘制完后调用。
|
||||
* `BaseChart.onCustomDrawTop`:自定义顶部绘制回调。在绘制Tooltip前调用。
|
||||
* `BaseChart.onPointerClick`:鼠标点击回调。
|
||||
* `BaseChart.onPointerDown`:鼠标按下回调。
|
||||
* `BaseChart.onPointerUp`:鼠标弹起回调。
|
||||
* `BaseChart.onPointerEnter`:鼠标进入图表回调。
|
||||
* `BaseChart.onPointerExit`:鼠标退出图表回调。
|
||||
* `BaseChart.onBeginDrag`:鼠标开始拖拽回调。
|
||||
* `BaseChart.onDrag`:鼠标拖拽回调。
|
||||
* `BaseChart.onEndDrag`:鼠标结束拖拽回调。
|
||||
* `BaseChart.onScroll`:鼠标滚动回调。
|
||||
* `BaseChart.SetSize(float width, float height)`: 设置图表的宽高(在非stretch pivot下才有效,其他情况需要自己调整RectTransform)。
|
||||
* `BaseChart.ClearData()`:清除所有数据,系列列表会保留,只是移除列表中系列的数据。
|
||||
* `BaseChart.RemoveData()`:清除所有系列和图例数据,系列列表也会被清除。
|
||||
* `BaseChart.RemoveData(string serieName)`:清除指定系列名称的数据。
|
||||
* `BaseChart.AddSerie(SerieType type, string serieName = null, bool show = true)`:添加一个系列到系列列表中。
|
||||
* `BaseChart.AddData(string serieName, float data, string dataName = null)`:添加一个数据到指定的系列中。
|
||||
* `BaseChart.AddData(int serieIndex, float data, string dataName = null)`:添加一个数据到指定的系列中。
|
||||
* `BaseChart.AddData(string serieName, List<float> multidimensionalData, string dataName = null)`:添加多维数据`(x,y,z...)`到指定的系列中。
|
||||
* `BaseChart.AddData(int serieIndex, List<float> multidimensionalData, string dataName = null)`:添加多维数据`(x,y,z...)`到指定的系列中。
|
||||
* `BaseChart.AddData(string serieName, float xValue, float yValue, string dataName)`:添加`(x,y)`数据到指定系列中。
|
||||
* `BaseChart.AddData(int serieIndex, float xValue, float yValue, string dataName = null)`:添加`(x,y)`数据到指定系列中。
|
||||
* `BaseChart.UpdateData(string serieName,int dataIndex, float value)`:更新指定系列中的指定索引数据。
|
||||
* `BaseChart.UpdateData(int serieIndex,int dataIndex, float value)`:更新指定系列中的指定索引数据。
|
||||
* `BaseChart.UpdateData(string serieName, int dataIndex, List<float> multidimensionalData)`:更新指定系列指定索引的数据项的多维数据。
|
||||
* `BaseChart.UpdateData(int serieIndex, int dataIndex, List<float> multidimensionalData)`:更新指定系列指定索引的数据项的多维数据。
|
||||
* `BaseChart.UpdateData(string serieName, int dataIndex, int dimension, float value)`:更新指定系列指定索引指定维数的数据。维数从0开始。
|
||||
* `BaseChart.UpdateData(int serieIndex, int dataIndex, int dimension, float value)`:更新指定系列指定索引指定维数的数据。维数从0开始。
|
||||
* `BaseChart.UpdateDataName(string serieName,int dataIndex, string dataName)`:更新指定系列中的指定索引数据名称。
|
||||
* `BaseChart.UpdateDataName(int serieIndex, int dataIndex, string dataName)`:更新指定系列中的指定索引数据名称。
|
||||
* `BaseChart.SetActive(string serieName, bool active)`:设置指定系列是否显示。
|
||||
* `BaseChart.SetActive(int serieIndex, bool active)`:设置指定系列是否显示。
|
||||
* `BaseChart.IsActive(string serieName)`:获取指定系列是否显示。
|
||||
* `BaseChart.IsActive(int serieIndex)`:获取指定系列是否显示。
|
||||
* `BaseChart.IsActiveByLegend(string legendName)`:获得指定图例名字的系列是否显示。
|
||||
* `BaseChart.RefreshChart()`:在下一帧刷新图表。
|
||||
* `BaseChart.RefreshLabel()`:在下一帧刷新文本标签。
|
||||
* `BaseChart.RefreshTooltip()`:立即刷新`Tooltip`组件。
|
||||
* `BaseChart.UpdateTheme(Theme theme)`:切换图表主题。
|
||||
* `BaseChart.AnimationEnable(bool flag)`:启用或关闭动画。
|
||||
* `BaseChart.AnimationFadeIn()`:渐入动画。
|
||||
* `BaseChart.AnimationFadeOut()`:渐出动画。
|
||||
* `BaseChart.AnimationPause()`:暂停动画。
|
||||
* `BaseChart.AnimationResume()`:继续动画。
|
||||
* `BaseChart.AnimationReset()`:重置动画。
|
||||
* `BaseChart.ClickLegendButton(int legendIndex, string legendName, bool show)`:点击图例按钮。
|
||||
* `BaseChart.IsInChart(Vector2 local)`:坐标是否在图表范围内。
|
||||
* `BaseChart.IsInChart(float x, float y)`:坐标是否在图表范围内。
|
||||
* `BaseChart.EnableBackground(bool flag)`:开启背景组件。背景组件在`chart`受上层布局控制时无法开启。
|
||||
* `BaseChart.SetBasePainterMaterial(Material material)`:设置Base Painter的材质球。
|
||||
* `BaseChart.SetSeriePainterMaterial(Material material)`:设置Serie Painter的材质球。
|
||||
* `BaseChart.SetTopPainterMaterial(Material material)`:设置Top Painter的材质球。
|
||||
|
||||
## `CoordinateChart`
|
||||
|
||||
* `CoordinateChart.grid`:网格组件 `Grid`。
|
||||
* `CoordinateChart.xAxes`:左右两个 `X` 轴组件 `XAxis`。
|
||||
* `CoordinateChart.yAxes`:左右两个 `Y` 轴组件 `YAxis`。
|
||||
* `CoordianteChart.xAxis0`:X轴(下)。
|
||||
* `CoordianteChart.xAxis1`:X轴(上)。
|
||||
* `CoordianteChart.xAxis0`:Y轴(左)。
|
||||
* `CoordianteChart.yAxis1`:Y轴(右)。
|
||||
* `CoordinateChart.dataZoom`:区域缩放组件 `DataZoom`。
|
||||
* `CoordinateChart.ClearAxisData()`:清除所有x轴和y轴的类目数据。
|
||||
* `CoordinateChart.AddXAxisData(string category, int xAxisIndex = 0)`:添加一个类目数据到指定的 `X` 轴。
|
||||
* `CoordinateChart.AddYAxisData(string category, int yAxisIndex = 0)`:添加一个类目数据到指定的 `Y` 轴。
|
||||
* `CoordinateChart.IsValue()`:是否是纯数值坐标。
|
||||
* `CoordinateChart.RefreshDataZoom()`:在下一帧刷新DataZoom组件。
|
||||
* `CoordinateChart.RefreshAxisMinMaxValue()`:立即刷新数值坐标轴的最大最小值(更新坐标轴标签并触发重绘)。
|
||||
* `CoordinateChart.IsInCooridate(Vector2 local)`:坐标是否在坐标轴内。
|
||||
* `CoordinateChart.IsInCooridate(Vector3 local)`:坐标是否在坐标轴内。
|
||||
* `CoordinateChart.IsInCooridate(float x, float y)`:坐标是否在坐标轴内。
|
||||
* `CoordinateChart.IsInCooridate(Vector2 local)`:坐标是否在坐标轴内。
|
||||
* `CoordinateChart.ClampInGrid(grid, Vector3 pos)`:将坐标限制在坐标系内。
|
||||
* `CoordinateChart.CovertXYAxis(int index)`:转换X轴和Y轴的配置。
|
||||
* `CoordinateChart.UpdateCoordinate()`:更新坐标系原点和宽高。一般内部会自动更新,也可强制更新。
|
||||
* `CoordinateChart.SetMaxCache(int maxCache)`:设置可缓存的最大数据量。当数据量超过该值时,会自动删除第一个值再加入最新值。
|
||||
|
||||
## `LineChart`
|
||||
|
||||
* 继承 `BaseChart`。
|
||||
* 继承自 `CoordinateChart`。
|
||||
|
||||
## `BarChart`
|
||||
|
||||
* 继承自 `BaseChart`。
|
||||
* 继承自 `CoordinateChart`。
|
||||
|
||||
* `BarChart.onPointerClickBar`:点击柱条回调。参数:`eventData`, `dataIndex`
|
||||
|
||||
## `PieChart`
|
||||
|
||||
* 继承自 `BaseChart`。
|
||||
|
||||
* `PieChart.onPointerClickPie`:点击柱条回调。参数:`eventData`, `serieIndex`, `dataIndex`
|
||||
|
||||
## `RadarChart`
|
||||
|
||||
* 继承自 `BaseChart`。
|
||||
* `RadarChart.radars`:雷达坐标系组件列表 `Radar`。
|
||||
* `RadarChart.RemoveRadar()`:移除所有雷达坐标系组件。
|
||||
* `RadarChart.AddRadar(Radar radar)`:添加雷达坐标系组件。
|
||||
* `RadarChart.AddRadar(Radar.Shape shape, Vector2 center, float radius, int splitNumber = 5,float lineWidth = 0.6f, bool showIndicator = true, bool showSplitArea = true)`:添加雷达坐标系组件。
|
||||
* `RadarChart.AddIndicator(int radarIndex, string name, float min, float max)`:添加指示器。
|
||||
* `RadarChart.UpdateIndicator(int radarIndex, int indicatorIndex, string name, float min, float max)`:更新指示器。
|
||||
* `RadarChart.GetRadar(int radarIndex)`:获得指定索引的雷达坐标系组件。
|
||||
* `RadarChart.GetIndicator(int radarIndex, int indicatorIndex)`:获得指定雷达坐标系组件指定索引的指示器。
|
||||
|
||||
## `ScatterChart`
|
||||
|
||||
* 继承自 `BaseChart`。
|
||||
* 继承自 `CoordinateChart`。
|
||||
|
||||
## `HeatmapChart`
|
||||
|
||||
* 继承自 `BaseChart`。
|
||||
* 继承自 `CoordinateChart`。
|
||||
|
||||
## `RingChart`
|
||||
|
||||
* 继承自 `BaseChart`。
|
||||
* `RingChart.UpdateMax(int serieIndex, int dataIndex, float value)`:更新指定系列执行数据项的最大值。
|
||||
* `RingChart.UpdateMax(int serieIndex, float value)`:更新指定系列的所有数据项的最大值。
|
||||
* `RingChart.UpdateMax(float value)`:更新第一个系列第一个数据项的最大值。
|
||||
|
||||
[返回首页](https://github.com/monitor1394/unity-ugui-XCharts)
|
||||
[XCharts配置项手册](XCharts配置项手册.md)
|
||||
[XCharts问答](XCharts问答.md)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c6e25b74d4d65457f971a07609658393
|
||||
guid: 529e55126e1d04a629b14d857f76fffd
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
935
Assets/XCharts/Documentation/xcharts-configuration-EN.md
Normal file
935
Assets/XCharts/Documentation/xcharts-configuration-EN.md
Normal file
@@ -0,0 +1,935 @@
|
||||
# XCharts Configuration
|
||||
|
||||
[XCharts Homepage](https://github.com/monitor1394/unity-ugui-XCharts)
|
||||
[XCharts API](xcharts-api-EN.md)
|
||||
[XCharts Q&A](xcharts-questions-and-answers-EN.md)
|
||||
|
||||
The translation work is still in progress.
|
||||
|
||||
__Main component:__
|
||||
|
||||
* [Axis](#XAxis)
|
||||
* [Background](#Background)
|
||||
* [DataZoom](#DataZoom)
|
||||
* [Grid](#Grid)
|
||||
* [Legend](#Legend)
|
||||
* [Polar](#Polar)
|
||||
* [Radar](#Radar)
|
||||
* [Series](#Series)
|
||||
* [Serie-Line](#Serie-Line)
|
||||
* [Serie-Bar](#Serie-Bar)
|
||||
* [Serie-Pie](#Serie-Pie)
|
||||
* [Serie-Radar](#Serie-Radar)
|
||||
* [Serie-Scatter](#Serie-Scatter)
|
||||
* [Serie-Heatmap](#Serie-Heatmap)
|
||||
* [Serie-Gauge](#Serie-Gauge)
|
||||
* [Serie-Ring](#Serie-Ring)
|
||||
* [Serie-Liquid](#Serie-Liquid)
|
||||
* [Serie-Candlestick](#Serie-Candlestick)
|
||||
* [Serie-Gantt](#Serie-Gantt)
|
||||
* [Settings](#Settings)
|
||||
* [Theme](#Theme)
|
||||
* [Title](#Title)
|
||||
* [Tooltip](#Tooltip)
|
||||
* [Vessel](#Vessel)
|
||||
* [VisualMap](#VisualMap)
|
||||
|
||||
__Sub component:__
|
||||
|
||||
* [AreaStyle](#AreaStyle)
|
||||
* [AxisLabel](#AxisLabel)
|
||||
* [AxisLine](#AxisLine)
|
||||
* [AxisName](#AxisName)
|
||||
* [AxisSplitLine](#AxisSplitLine)
|
||||
* [AxisSplitArea](#AxisSplitArea)
|
||||
* [AxisTick](#AxisTick)
|
||||
* [Emphasis](#Emphasis)
|
||||
* [ItemStyle](#ItemStyle)
|
||||
* [LineArrow](#LineArrow)
|
||||
* [LineStyle](#LineStyle)
|
||||
* [Location](#Location)
|
||||
* [SerieAnimation](#SerieAnimation)
|
||||
* [SerieData](#SerieData)
|
||||
* [SerieLabel](#SerieLabel)
|
||||
* [SerieSymbol](#SerieSymbol)
|
||||
* [TextLimit](#TextLimit)
|
||||
* [TextStyle](#TextStyle)
|
||||
* [IconStyle](#IconStyle)
|
||||
|
||||
## `Theme`
|
||||
|
||||
Theme components. Topics are used to configure other parameters such as the global color scheme for the chart.
|
||||
|
||||
Parameters:
|
||||
|
||||
* `theme`: Built-in theme types. There are `Default`, `Light`, `Dark` three optional built-in theme.
|
||||
* `font`: A common font for all text.
|
||||
* `backgroundColor`: Chart background color.
|
||||
* `titleTextColor`: The text color of the main title.
|
||||
* `titleSubTextColor`: The text color of the sub title.
|
||||
* `legendTextColor`: Legend text color when actived.
|
||||
* `legendUnableColor`: Legend text color when unactived.
|
||||
* `axisTextColor`: The text color of axis label.
|
||||
* `axisLineColor`: The color of axis line.
|
||||
* `axisSplitLineColor`: The color of the dividing line of the coordinate axis is the same as the default color of the axis.
|
||||
* `tooltipBackgroundColor`: The background color of the tooltip.
|
||||
* `tooltipFlagAreaColor`: The color of the shadow indicator for the tooltip.
|
||||
* `tooltipTextColor`: The text color of Tooltip.
|
||||
* `tooltipLabelColor`: The cross indicator in the tooltip coordinates the background color of the label.
|
||||
* `tooltipLineColor`: The color of the indicator line in the tooltip.
|
||||
* `dataZoomTextColor`: The text color of dataZoom.
|
||||
* `dataZoomLineColor`: The line color of dataZoom.
|
||||
* `dataZoomSelectedColor`: The selected area color of dataZoom.
|
||||
* `colorPalette`: Palette color list. The color list of palette. If no color is set in series, the colors would be adopted sequentially and circularly from this list as the colors of series.
|
||||
|
||||
API:
|
||||
|
||||
* `GetColor(int index)`: Gets the color of the specified index from the palette.
|
||||
* `GetColorStr(int index)`: Gets the hexadecimal color string of the specified index from the palette.
|
||||
* `GetColor(string hexColorStr)`: Convert the html string to color.
|
||||
|
||||
## `Title`
|
||||
|
||||
Title component, including main title and subtitle.
|
||||
|
||||
Parameters:
|
||||
|
||||
* `show`: Whether to show title component.Set this to false to prevent the title component from showing.
|
||||
* `text`: The content of main title, supporting `\n` for newlines.
|
||||
* `textStyle`: The text style of main title [TextStyle](#TextStyle).
|
||||
* `subText`: The content of sub title, supporting `\n` for newlines.
|
||||
* `subTextStyle`: The text style of sub title [TextStyle](#TextStyle).
|
||||
* `itemGap`: The gap between the main title and sub title.
|
||||
* `location`: The location of title component [Location](#Location).
|
||||
|
||||
## `TitleStyle`
|
||||
|
||||
Sub component for serie title.
|
||||
|
||||
* `show`: Whether to show serie title.
|
||||
* `textStyle`: The text style of title [TextStyle](#TextStyle).
|
||||
|
||||
## `Legend`
|
||||
|
||||
Legend component.The legend component shows different sets of symbol, colors, and names. You can control which series are not displayed by clicking on the legend.
|
||||
|
||||
Parameters:
|
||||
|
||||
* `show`: Whether show legend component.
|
||||
* `iconType`: the legend icon symbol type:
|
||||
* `Auto` : Auto match.
|
||||
* `Custom` : Custom icon.
|
||||
* `EmptyCircle` : hollow circle.
|
||||
* `Circle` : solid Circle.
|
||||
* `Rect` : square.
|
||||
* `Triangle` :
|
||||
* `Diamond` :
|
||||
* `selectedMode`: Selected mode of legend, which controls whether series can be toggled displaying by clicking legends:
|
||||
* `Multiple`: multi-select.
|
||||
* `Single`: single select.
|
||||
* `None`: can’t select.
|
||||
* `orient`: horizontal or vertical layout:
|
||||
* `Horizonal`: horizontal layout.
|
||||
* `Vertical`: vertical layout.
|
||||
* `location`: the localtion of legend in chart [Location](#Location).
|
||||
* `itemWidth`: the width of legend icon.
|
||||
* `itemHeight`: the height of legend icon.
|
||||
* `itemGap`: The distance between each legend, horizontal distance in horizontal layout, and vertical distance in vertical layout.
|
||||
* `itemAutoColor`: Whether the legend symbol matches the color automatically.
|
||||
* `formatter`: Legend content string template formatter. Support for wrapping lines with `\n`. Template:`{name}`.
|
||||
* `data`: Data array of legend. An array item is usually a name representing string. (If it is a pie chart, it could also be the name of a single data in the pie chart) of a series. If data is not specified, it will be auto collected from series.
|
||||
* `icons`: The list of cunstomize icons.
|
||||
* `textStyle`: The style of text [TextStyle](#TextStyle).
|
||||
|
||||
API:
|
||||
|
||||
* `ClearData()`: Clear legend data.
|
||||
* `ContainsData(string name)`: Whether include in legend data by the specified name.
|
||||
* `RemoveData(string name)`: Remove legend from data.
|
||||
* `AddData(string name)`: Add legend.
|
||||
* `GetData(int index)`: Get legend.
|
||||
* `GetIndex(string legendName)`: Get the index of legend.
|
||||
|
||||
## `Polar`
|
||||
|
||||
Polar coordinate can be used in scatter and line chart. Every polar coordinate has an angleAxis and a radiusAxis.
|
||||
|
||||
Parameters:
|
||||
|
||||
* `show`: Whether to show the polor component.
|
||||
* `center`: The center of ploar. The `center[0]` is the x-coordinate, and the `center[1]` is the y-coordinate. When value between 0 and 1 represents a percentage relative to the chart.
|
||||
* `radius`: the radius of polar.
|
||||
* `backgroundColor`: Background color of polar, which is transparent by default.
|
||||
|
||||
## `Radar`
|
||||
|
||||
Radar coordinate conponnet for radar charts.
|
||||
|
||||
* `shape`: Radar render type, in which `Polygon` and `Circle` are supported.
|
||||
* `Polygon`: Polygon.
|
||||
* `Circle`: Circle.
|
||||
* `positionType`: The position type of radar indicator label display.
|
||||
* `Vertice`: Display at the vertex.
|
||||
* `Between`: Display at the middle of line.
|
||||
* `radius`: The radius of radar.[default:0.3f].
|
||||
* `center`: the center of radar chart. The `center[0]` is the x-coordinate, and the `center[1]` is the y-coordinate. When value between 0 and 1 represents a percentage relative to the chart.[default:[0.5f,0.4f]].
|
||||
* `ceilRate`: The ratio of maximum and minimum values rounded upward. The default is 0, which is automatically calculated.[default:0].
|
||||
* `splitNumber`: Segments of indicator axis.[default:5].
|
||||
* `splitNumber`: Tooltip displays all the data on the axis.[default:false].
|
||||
* `splitLine`: The split line style of radar [AxisSplitLine](#AxisSplitLine).
|
||||
* `splitArea`: The split area style of radar [AxisSplitArea](#AxisSplitArea).
|
||||
* `indicator`: Whether to show indicator.
|
||||
* `indicatorGap`: The gap of indicator and radar.
|
||||
* `indicatorList`: The indicator list [Radar.Indicator](#Radar.Indicator).
|
||||
|
||||
## `Radar.Indicator`
|
||||
|
||||
Indicator of radar chart, which is used to assign multiple variables(dimensions) in radar chart.
|
||||
|
||||
* `name`: The name of indicator.
|
||||
* `max`: The maximum value of indicator, with default value of 0, but we recommend to set it manually.
|
||||
* `min`: The minimum value of indicator, with default value of 0.
|
||||
* `textStyle`: The text style of indicator [TextStyle](#TextStyle).
|
||||
|
||||
## `TextLimit`
|
||||
|
||||
Text character limitation and adaptation component. When the length of the text exceeds the set length, it is cropped and suffixes are appended to the end. Only valid in the category axis.
|
||||
|
||||
* `enable`: Whether to enable text limit. [default: `true`].
|
||||
* `maxWidth`: Set the maximum width. A default of 0 indicates automatic fetch; otherwise, custom. Clipping occurs when the width of the text is greater than this value. [default: `0f`].
|
||||
* `gap`: White pixel distance at both ends. [default: `10f`].
|
||||
* `suffix`: Suffixes when the length exceeds. [default: `"..."`].
|
||||
|
||||
## `TextStyle`
|
||||
|
||||
The component of settings related to text.
|
||||
|
||||
* `rotate`: rotate of text. [default: `0f`].
|
||||
* `offset`: offset of text position. [default: `Vector2.zero`].
|
||||
* `color`: color of text. [default: `Color.clear`].
|
||||
* `backgroundColor`: color of text background. [default: `Color.clear`].
|
||||
* `font`: the font of text. When `null`, the theme's font is used by default. [default: `null`].
|
||||
* `fontSize`: the size of text. [default: `18`].
|
||||
* `fontStyle`: the font style of text. [default: `FontStyle.Normal`].
|
||||
* `lineSpacing`: the space of text line. [default: `1f`].
|
||||
* `autoWrap`: Whether to wrap lines.
|
||||
* `autoAlign`: Whether to let the system automatically set alignment. If true, the system automatically selects alignment, and if false, use alignment.
|
||||
|
||||
## `Tooltip`
|
||||
|
||||
Tooltip component.
|
||||
|
||||
* `show`: Whether to show the tooltip component.
|
||||
* `type`: Indicator type. Indicator types are:
|
||||
* `Line`: line indicator.
|
||||
* `Shadow`: shadow crosshair indicator.
|
||||
* `None`: no indicator displayed.
|
||||
* `Corss`: crosshair indicator, which is actually the shortcut of enable two axisPointers of two orthometric axes.
|
||||
* `formatter`: A string template formatter for the total content of the prompt box. Support for wrapping lines with `\n`. When formatter is not null, use formatter first, otherwise use itemFormatter.
|
||||
* Template variables are `{.}`, `{a}`, `{b}`, `{c}`, `{d}`.
|
||||
* `{.}` is the dot of the corresponding color of `serie` that is currently indicated or whose `index` is `0`.`
|
||||
* `{a}` is the `name` of the `serie` that is currently indicated or whose `index` is `0`.
|
||||
* `{b}` is the `name` of the `serieData` that is currently indicated or whose `index` is `0`, or a `category` value (such as the X-axis of a line chart).
|
||||
* `{c}` is the value of a Y-dimension (`dimesion` is 1) from the `serie` that is currently indicated or whose `index` is `0`.
|
||||
* `{d}` is the percentage value of Y-dimensions (`dimesion` is 1) from the `serie` that is currently indicated or whose `index` is `0`, with no `%` sign.
|
||||
* `{.1}` represents a dot from serie corresponding color that specifies `index` as `1`.
|
||||
* `1` in `{a1}`, `{b1}`, `{c1}` represents a `serie` that specifies an `index` of `1`.
|
||||
* `{c1:2}` represents the third data from `serie`'s current indication data item indexed to `1` (a data item has multiple data, `index` 2 represents the third data).
|
||||
* `{c1:2-2}` represents the third data item from `serie`'s third data item indexed to `1` (i.e., which data item must be specified to specify).
|
||||
* `{d1:2: F2}` indicates that a formatted string with a value specified separately is `F2` (`numericFormatter` is used when not specified).
|
||||
* Example: `"{a}, {c}"`, `"{a1}, {c1: f1}"`, `"{a1}, {c1:0: f1}"`, `"{a1} : {c1:1-1: f1}"`
|
||||
* `titleFormatter`: The string template formatter for the tooltip title content. Support for wrapping lines with `\n`. This is only valid if the `itemFormatter` is in effect. The placeholder `{I}` can be set separately to indicate that the title is ignored and not displayed.
|
||||
* `itemFormatter`: a string template formatter for a single Serie or data item content. Support for wrapping lines with `\n`. When `formatter` is not null, use `formatter` first, otherwise use `itemFormatter`.
|
||||
* `numericFormatter`: Standard numeric format string. Used to format numeric values to display as strings. Using `Axx` form: `A` is the single character of the format specifier, supporting `C` currency, `D` decimal, `E` exponent, `F` number of vertices, `G` regular, `N` digits, `P` percentage, `R` round tripping, `X` hex etc. `XX` is the precision specification, from `0` - `99`. see: <https://docs.microsoft.com/zh-cn/dotnet/standard/base-types/standard-numeric-format-strings>
|
||||
* `fixedWidth`: Fixed width. Higher priority than `minWidth`.
|
||||
* `fixedHeight`: Fixed height. Higher priority than `minHeight`.
|
||||
* `minWidth`: Minimum width. If `fixedWidth` has a value, get `fixedWidth` first.
|
||||
* `minHeight`: Minimum height. If `fixedHeight` has a value, get `fixedHeight` first.
|
||||
* `paddingLeftRight`: the text padding of left and right. [defaut: `5f`].
|
||||
* `paddingTopBottom`: the text padding of top and bottom. [defaut: `5f`].
|
||||
* `backgroundImage`: The image of icon.
|
||||
* `ignoreDataShow`: Whether to show ignored data on tooltip. [defaut: `false`].
|
||||
* `ignoreDataDefaultContent`: The default display character information for ignored data.
|
||||
* `alwayShow`: Whether to trigger after always display.
|
||||
* `offset`: `(since v1.5.3)`The position offset of tooltip relative to the mouse position.
|
||||
* `lineStyle`: the line style of indicator line [LineStyle](#LineStyle).
|
||||
* `textStyle`: the text style of content [TextStyle](#TextStyle).
|
||||
|
||||
## `Vessel`
|
||||
|
||||
Vessel component for liquid chart. There can be multiple vessels in a Chart, which can be matched by vesselIndex in Serie.
|
||||
|
||||
* `show`: Whether to show the vessel. [defaut: `true`]
|
||||
* `shape`: The shape of vessel. [default: `Shape.Circle`]
|
||||
* `shapeWidth`: Thickness of vessel. [defaut: `5f`]
|
||||
* `gap`: The gap between the vessel and the liquid. [defaut: `10f`]
|
||||
* `center`: The center of vessel. The `center[0]` is the x-coordinate, and the `center[1]` is the y-coordinate. When value between `0` and `1` represents a percentage relative to the chart. [default: `[0.5f,0.45f]`]
|
||||
* `radius`: The radius of vessel. When value between 0 and 1 represents a percentage relative to the chart. [default: `0.35f`]
|
||||
* `smoothness`: The smoothness of wave. [default: `1f`]
|
||||
* `backgroundColor`: Background color of polar, which is transparent by default. [default: `Color.clear`]
|
||||
* `color`: Vessel color. The default is consistent with Serie. [default: `Color32(70, 70, 240, 255)`]
|
||||
* `autoColor`: Whether automatic color. If true, the color matches serie. [default: `true`]
|
||||
* `width`:The width of vessel. This value is valid when `shape` is `Rect`.
|
||||
* `height`:The height of vessel. This value is valid when `shape` is `Rect`.
|
||||
* `cornerRadius`: The radius of rounded corner. This value is valid when `shape` is `Rect`.
|
||||
|
||||
## `DataZoom`
|
||||
|
||||
DataZoom component is used for zooming a specific area, which enables user to investigate data in detail, or get an overview of the data, or get rid of outlier points.
|
||||
Currently only the control `X` axis is supported.
|
||||
|
||||
* `enable`: Whether to show dataZoom.
|
||||
* `supportInside`: Whether built-in support is supported. Built into the coordinate system to allow the user to zoom in and out of the coordinate system by mouse dragging, mouse wheel, finger swiping (on the touch screen).
|
||||
* `supportSlider`: Whether a slider is supported. There are separate sliders on which the user zooms or roams.
|
||||
* ~~`filterMode`: The mode of data filter, not support yet.~~
|
||||
* ~~`Filter`: data that outside the window will be filtered, which may lead to some changes of windows of other axes. For each data item, it will be filtered if one of the relevant dimensions is out of the window.~~
|
||||
* ~~`WeakFilter`: data that outside the window will be filtered, which may lead to some changes of windows of other axes. For each data item, it will be filtered only if all of the relevant dimensions are out of the same side of the window.~~
|
||||
* ~~`Empty`: data that outside the window will be set to NaN, which will not lead to changes of windows of other axes.~~
|
||||
* ~~`None`: Do not filter data.~~
|
||||
* ~~`xAxisIndex`: Specify which xAxis is controlled by the dataZoom.~~
|
||||
* ~~`yAxisIndex`: Specify which yAxis is controlled by the dataZoom.~~
|
||||
* `showDataShadow`: Whether to show data shadow, to indicate the data tendency in brief. [default: `true`]
|
||||
* `showDetail`: Whether to show detail, that is, show the detailed data information when dragging. [default: `false`]
|
||||
* `zoomLock`: Specify whether to lock the size of window (selected area). [default: `false`]
|
||||
* ~~`realtime`: Whether to show data shadow in dataZoom-silder component, to indicate the data tendency in brief. [default: `true`]~~
|
||||
* `backgroundColor`: The background color of the component.
|
||||
* `selectedAreaColor`: The color of the selected area.
|
||||
* `bottom`: Distance between dataZoom component and the bottom side of the container. [default: `10f`]
|
||||
* `top`: Distance between dataZoom component and the top side of the container. [default: `0`]
|
||||
* `left`: Distance between dataZoom component and the left side of the container. [default: `0`]
|
||||
* `right`: Distance between dataZoom component and the right side of the container. [default: `0`]
|
||||
* `height`: The height of dataZoom component. height value is a instant pixel value like 10. [default: `50f`]
|
||||
* `rangeMode`: Use absolute value or percent value in `DataZoom.start` and `DataZoom.end`. [default: `RangeMode.Percent`].
|
||||
* `Percent`: percent.
|
||||
* `start`: The start percentage of the window out of the data extent, in the range of `0 ~ 100`. [default: `30f`]
|
||||
* `end`: The end percentage of the window out of the data extent, in the range of 0 ~ 100. [default: `70f`]
|
||||
* `scrollSensitivity`: The sensitivity of dataZoom scroll. The larger the number, the more sensitive it is. [default: `10f`]
|
||||
* `textStyle`: style of datazoom label.
|
||||
* `minShowNum`: Minimum number of display data. Minimum number of data displayed when DataZoom is enlarged to maximum. [default: `1`]
|
||||
|
||||
## `VisualMap`
|
||||
|
||||
VisualMap component. mapping data to visual elements such as colors.
|
||||
|
||||
* `enable`: Whether enable visualMap component. [default: false]
|
||||
* `show`: Whether to display components. If set to false, it will not show up, but the data mapping function still exists. [default: true]
|
||||
* `type`: the type of visualmap component.
|
||||
* `Continuous`: Continuous.
|
||||
* ~~`Piecewise`: Piecewise.~~
|
||||
* ~~`selectedMode`: the selected mode for Piecewise visualMap.~~
|
||||
* ~~`Multiple`: Multiple.~~
|
||||
* ~~`Single`: Single.~~
|
||||
|
||||
* `autoMinMax`: Automatically set min, Max value.
|
||||
* `min`: The minimum allowed. `min` must be user specified. `[min, max]` forms the domain of the visualMap.
|
||||
* `max`: The maximum allowed. `max` must be user specified. `[min, max]` forms the domain of the visualMap.
|
||||
* `range`: Specifies the position of the numeric value corresponding to the handle. Range should be within the range of [min,max].
|
||||
* ~~`text`: Text on both ends. such as [`High`, `Low`].~~
|
||||
* ~~`textGap`: The distance between the two text bodies.~~
|
||||
* `splitNumber`: For continuous data, it is automatically evenly divided into several segments and automatically matches the size of inRange color list when the default is 0.
|
||||
* `calculable`: Whether the handle used for dragging is displayed (the handle can be dragged to adjust the selected range).
|
||||
* ~~`realtime`: Whether to update in real time while dragging.~~
|
||||
* `itemWidth`: The width of the figure, that is, the width of the color bar.
|
||||
* `itemHeight`: The height of the figure, that is, the height of the color bar.
|
||||
* `borderWidth`: 边框线宽,单位px。
|
||||
* `dimension`: Specifies which `dimension` of the `Data` to map to the visual element. `Data` is series.data. Starting at 1, the default is 0 to take the last dimension in data.
|
||||
* `hoverLink`: When the hoverLink function is turned on, when the mouse hovers over the visualMap component, the corresponding value of the mouse position is highlighted in the corresponding graphic element in the diagram. Conversely, when the mouse hovers over a graphic element in a diagram, the corresponding value of the visualMap component is triangulated in the corresponding position.
|
||||
* `orient`: Is the layout horizontal or vertical.
|
||||
* `location`: The location of component.
|
||||
* `inRange`: Defines the visual color in the selected range.
|
||||
* ~~`outOfRange`: Defines a visual color outside of the selected range.~~
|
||||
|
||||
## `Grid`
|
||||
|
||||
Grid component. Drawing grid in rectangular coordinate. In a single grid, at most two X and Y axes each is allowed. Line chart, bar chart, and scatter chart can be drawn in grid. There is only one single grid component at most in a single echarts instance.
|
||||
|
||||
* `show`: Whether to show the grid in rectangular coordinate.
|
||||
* `left`: Distance between grid component and the left side of the container.
|
||||
* `right`: Distance between grid component and the right side of the container.
|
||||
* `top`: Distance between grid component and the top side of the container.
|
||||
* `bottom`: Distance between grid component and the bottom side of the container.
|
||||
* `backgroundColor`: Background color of grid, which is transparent by default.
|
||||
|
||||
## `GaugeAxis`
|
||||
|
||||
GaugeAxis sub component. Settings related to gauge axis line.
|
||||
|
||||
* `axisLine`: axis line style.
|
||||
* `splitLine`: slit line style.
|
||||
* `axisTick`: axis tick style.
|
||||
* `axisLabel`: axis label style.
|
||||
* `axisLabelText`: Coordinate axis scale label custom content. When the content is empty, `axisLabel` automatically displays the content according to the scale; otherwise, the content is taken from the list definition.
|
||||
|
||||
## `GaugePointer`
|
||||
|
||||
GaugePointer sub component. Settings related to gauge pointer.
|
||||
|
||||
* `show`: Whether to display a pointer.
|
||||
* `width`: Pointer width.
|
||||
* `length`: Pointer length. It can be an absolute value, or it can be a percentage relative to the radius (0-1).
|
||||
|
||||
## `XAxis`
|
||||
|
||||
The x axis in cartesian(rectangular) coordinate. a grid component can place at most 2 x axis, one on the bottom and another on the top.
|
||||
|
||||
* `show`: Whether to show axis. By default `xAxes[0]` is `true` and `xAxes[1]` is `false`.
|
||||
* `gridIndex`: The index of the grid on which the axis are located, by default, is in the first grid.
|
||||
* `type`: the type of axis. The default is `Category`.
|
||||
* `Value`: Numerical axis for continuous data.
|
||||
* `Category`: Category axis, applicable to discrete category data, category data must be set through `data` for this type.
|
||||
* `Log`: Log axis, it applies to logarithmic data.
|
||||
* `position`: the position of axis in grid.
|
||||
* `Left`: left of grid.
|
||||
* `Right`: right of grid.
|
||||
* `Bottom`: bottom of grid.
|
||||
* `Top`: top of grid.
|
||||
* `offset`: the offset of axis from the default position. Useful when the same position has multiple axes.
|
||||
* `logBaseE`: On the log axis, if base e is the natural number, and is true, logBase fails.
|
||||
* `logBase`: Base of logarithm, which is valid only for numeric axes with type: `Log`.
|
||||
* `minMaxType`: the type of axis minmax.The default is `Default`.
|
||||
* `Default`: 0 - max.
|
||||
* `MinMax`: min - max.
|
||||
* `Custom`: Custom min - max.
|
||||
* `min`: The minimun value of axis. Valid when `minMaxType` is `Custom`.
|
||||
* `max`: The maximum value of axis. Valid when `minMaxType` is `Custom`.
|
||||
* `ceilRate`: The ratio of maximum and minimum values rounded upward. The default is 0, which is automatically calculated.
|
||||
* `splitNumber`: Number of segments that the axis is split into. The default is `5`, When `splitNumber` is set to `0`, it draws all the category data.
|
||||
* `interval`: Compulsively set segmentation interval for axis.This is unavailable for category axis. The `splitNumber` is invalid when set.
|
||||
* `boundaryGap`: The boundary gap on both sides of a coordinate axis.
|
||||
* `maxCache`: The max number of axis data cache. The first data will be remove when the size of axis data is larger then `maxCache`.
|
||||
* `inverse`: Whether the axis are reversed or not. Invalid in `Category` axis.
|
||||
* `insertDataToHead`: Whether to add new data at the head or at the end of the list.
|
||||
* `data`: Category data, valid in the `Category` axis.
|
||||
* `icons`: icon list.
|
||||
* `axisLine`: the style of axis line [AxisLine](#AxisLine).
|
||||
* `axisName`: the style of axis name [AxisName](#AxisName).
|
||||
* `axisTick`: the style of axis tick [AxisTick](#AxisTick).
|
||||
* `axisLabel`: the style of axis label [AxisLabel](#AxisLabel).
|
||||
* `splitLine`: the style of axis split line [AxisSplitLine](#SplitLine).
|
||||
* `splitArea`: the style of axis split area [AxisSplitArea](#AxisSplitArea).
|
||||
* `iconStyle`: the style of the axis scale icon [IconStyle](#IconStyle).
|
||||
|
||||
## `Background`
|
||||
|
||||
Background component.Due to the limitations of the framework, there are two limitations to the use of background component:
|
||||
1: The parent node of chart cannot have a layout control class component.
|
||||
2: The parent node of Chart can only have one child node of the current chart.
|
||||
|
||||
* `show`: Whether to enable the background component. However, the ability to activate the background component is subject to other conditions.
|
||||
* `image`: the image of background.
|
||||
* `imageType`: the fill type of background image.
|
||||
* `imageColor`: the color of background image, The default is `white`.
|
||||
* `hideThemeBackgroundColor`: Whether to hide the background color set in the `theme` when the background component is on.
|
||||
|
||||
## `YAxis`
|
||||
|
||||
The y axis in cartesian(rectangular) coordinate. a grid component can place at most 2 y axis, one on the left and another on the right.
|
||||
|
||||
The parameters are the same as XAxis.
|
||||
|
||||
## `Series`
|
||||
|
||||
Serie list. Each serie determines its own chart type by `type`.
|
||||
|
||||
Check each serie for parameters.
|
||||
|
||||
## `Serie-Line`
|
||||
|
||||
Line chart serie.
|
||||
|
||||
* `show`: Whether to show serie in chart.
|
||||
* `type`: `Line`.
|
||||
* `name`: Series name used for displaying in tooltip and filtering with legend.
|
||||
* `stack`: If stack the value. On the same category axis, the series with the same stack name would be put on top of each other.
|
||||
* `xAxisIndex`: Index of x axis to combine with, which is useful for multiple axes in one chart.
|
||||
* `yAxisIndex`: Index of y axis to combine with, which is useful for multiple axes in one chart.
|
||||
* `minShow`: The min number of data to show in chart.
|
||||
* `maxShow`: The max number of data to show in chart.
|
||||
* `maxCache`: The max number of serie data cache. The first data will be remove when the size of serie data is larger then maxCache.
|
||||
* `sampleDist`: The minimum horizontal pixel distance of sampling, which defaults to `0` without sampling. When the horizontal pixel distance between two data points is less than this value, start sampling to ensure that the horizontal pixel distance between two points is not less than this value.
|
||||
* `sampleType`: Sample type. This is valid when `sampleDist` is greater than `0`. The following five sampling types are supported:
|
||||
* `Peak`: Take a peak. When the average value of the filter point is greater than or equal to `sampleAverage`, take the maximum value; If you do it the other way around, you get the minimum.
|
||||
* `Average`: Take the average of the filter points.
|
||||
* `Max`: Take the maximum value of the filter point.
|
||||
* `Min`: Take the minimum value of the filter point.
|
||||
* `Sum`: Take the sum of the filter points.
|
||||
* `sampleAverage`: Set the sampling average. When `sampleType` is `Peak`, is the maximum or minimum value used to compare the average value of the filtered data. The default of `0` is to calculate the average of all data in real time.
|
||||
* `clip`: 是否裁剪超出坐标系部分的图形。
|
||||
* `ignore`: 是否开启忽略数据。当为 `true` 时,数据值为 `ignoreValue` 时不进行绘制。
|
||||
* `ignoreValue`: 忽略数据的默认值。默认值默认为0,当 `ignore` 为 `true` 才有效。
|
||||
* `showAsPositiveNumber`: 将负数数值显示为正数。一般和`AxisLabel`的`showAsPositiveNumber`配合使用。仅在折线图和柱状图中有效。
|
||||
* `large`: 是否开启大数据量优化,在数据图形特别多而出现卡顿时候可以开启。开启后配合 largeThreshold 在数据量大于指定阈值的时候对绘制进行优化。缺点: 优化后不能自定义设置单个数据项的样式,不能显示Label,折线图不绘制Symbol。
|
||||
* `largeThreshold`: 开启大数量优化的阈值。只有当开启了large并且数据量大于该阀值时才进入性能模式。
|
||||
* `areaStyle`: 区域填充样式 [AreaStyle](#AreaStyle)。
|
||||
* `symbol`: 标记的图形 [SerieSymbol](#SerieSymbol)。
|
||||
* `lineType`: 折线图样式类型。支持以下十种类型:
|
||||
* `Normal`: 普通折线图。
|
||||
* `Smooth`: 平滑曲线。
|
||||
* `SmoothDash`: 平滑虚线。
|
||||
* `StepStart`: 阶梯线图: 当前点。
|
||||
* `StepMiddle`: 阶梯线图: 当前点和下一个点的中间。
|
||||
* `StepEnd`: 阶梯线图: 下一个拐点。
|
||||
* `Dash`: 虚线。
|
||||
* `Dot`: 点线。
|
||||
* `DashDot`: 点划线。
|
||||
* `DashDotDot`: 双点划线。
|
||||
* `lineStyle`: 线条样式 [LineStyle](#LineStyle)。
|
||||
* `label`: 图形上的文本标签 [SerieLabel](#SerieLabel),可用于说明图形的一些数据信息,比如值,名称等。
|
||||
* `emphasis`: 高亮样式 [Emphasis](#Emphasis)。
|
||||
* `animation`: 起始动画 [SerieAnimation](#SerieAnimation)。
|
||||
* `lineArrow`: 折线图的箭头 [LineArrow](#LineArrow)。
|
||||
* `insertDataToHead`: Whether to add new data at the head or at the end of the list.
|
||||
* `data`: 系列中的数据项 [SerieData](#SerieData) 数组,可以设置`1`到`n`维数据。
|
||||
|
||||
## `Serie-Bar`
|
||||
|
||||
折线图系列。
|
||||
|
||||
* `show`: 系列是否显示在图表上。
|
||||
* `type`: `Bar`。
|
||||
* `name`: 系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
|
||||
* `stack`: 数据堆叠。同个类目轴上系列配置相同的 `stack` 值后,后一个系列的值会在前一个系列的值上相加。
|
||||
* `xAxisIndex`: Index of x axis to combine with, which is useful for multiple axes in one chart.
|
||||
* `yAxisIndex`: Index of y axis to combine with, which is useful for multiple axes in one chart.
|
||||
* `minShow`: 系列显示数据的最小索引。
|
||||
* `maxShow`: 系列显示数据的最大索引。
|
||||
* `maxCache`: 系列中可缓存的最大数据量。默认为`0`没有限制,大于0时超过指定值会移除旧数据再插入新数据。
|
||||
* `barType`: 柱状图类型。以下几种类型:
|
||||
* `Normal`: 普通柱状图。
|
||||
* `Zebra`: 斑马柱状图。
|
||||
* `Capsule`: 胶囊柱状图。
|
||||
* `barPercentStack`: 是否百分比堆叠柱状图,相同 `stack` 的 `serie` 只要有一个 `barPercentStack` 为 `true`,则就显示成百分比堆叠柱状图。
|
||||
* `barWidth`: 柱条的宽度,不设时自适应。支持设置成相对于类目宽度的百分比。
|
||||
* `barGap`: 不同系列的柱间距离。为百分比(如 `'0.3f'`,表示柱子宽度的 `30%`)。如果想要两个系列的柱子重叠,可以设置 `barGap` 为 `'-1f'`。这在用柱子做背景的时候有用。在同一坐标系上,此属性会被多个 `'bar'` 系列共享。此属性应设置于此坐标系中最后一个 `'bar'` 系列上才会生效,并且是对此坐标系中所有 `'bar'` 系列生效。
|
||||
* `barCategoryGap`: 同一系列的柱间距离,默认为类目间距的20%,可设固定值。在同一坐标系上,此属性会被多个 `'bar'` 系列共享。此属性应设置于此坐标系中最后一个 `'bar'` 系列上才会生效,并且是对此坐标系中所有 `'bar'` 系列生效。
|
||||
* `barZebraWidth`: 斑马线的粗细。`barType` 为 `Zebra` 时有效。
|
||||
* `barZebraGap`: 斑马线的间距。`barType` 为 `Zebra` 时有效。
|
||||
* `clip`: 是否裁剪超出坐标系部分的图形。
|
||||
* `ignore`: 是否开启忽略数据。当为 `true` 时,数据值为 `ignoreValue` 时不进行绘制。
|
||||
* `ignoreValue`: 忽略数据的默认值。默认值默认为0,当 `ignore` 为 `true` 才有效。
|
||||
* `showAsPositiveNumber`: 将负数数值显示为正数。一般和`AxisLabel`的`showAsPositiveNumber`配合使用。仅在折线图和柱状图中有效。
|
||||
* `large`: 是否开启大数据量优化,在数据图形特别多而出现卡顿时候可以开启。开启后配合 largeThreshold 在数据量大于指定阈值的时候对绘制进行优化。缺点: 优化后不能自定义设置单个数据项的样式,不能显示Label,折线图不绘制Symbol。
|
||||
* `largeThreshold`: 开启大数量优化的阈值。只有当开启了large并且数据量大于该阀值时才进入性能模式。
|
||||
* `symbol`: 标记的图形 [SerieSymbol](#SerieSymbol)。
|
||||
* `itemStyle`: 柱条样式 [ItemStyle](#ItemStyle)。
|
||||
* `areaStyle`: 区域填充样式 [AreaStyle](#AreaStyle)。
|
||||
* `label`: 图形上的文本标签 [SerieLabel](#SerieLabel),可用于说明图形的一些数据信息,比如值,名称等。
|
||||
* `emphasis`: 高亮样式 [Emphasis](#Emphasis)。
|
||||
* `animation`: 起始动画 [SerieAnimation](#SerieAnimation)。
|
||||
* `data`: 系列中的数据项 [SerieData](#SerieData) 数组,可以设置`1`到`n`维数据。
|
||||
|
||||
## `Serie-Pie`
|
||||
|
||||
饼图系列。
|
||||
|
||||
* `show`: 系列是否显示在图表上。
|
||||
* `type`: `Pie`。
|
||||
* `name`: 系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
|
||||
* `pieRoseType`: 南丁格尔玫瑰图类型,支持以下类型:
|
||||
* `None`: 不展示成南丁格尔玫瑰图。
|
||||
* `Radius`: 扇区圆心角展现数据的百分比,半径展现数据的大小。
|
||||
* `Area`: 所有扇区圆心角相同,仅通过半径展现数据大小。
|
||||
* `space`: 扇区间隙。
|
||||
* `center`: 中心点坐标。当值为`0-1`的浮点数时表示百分比。
|
||||
* `radius`: 半径。`radius[0]`为内径,`radius[1]`为外径。当内径大于0时即为圆环图。
|
||||
* `minAngle`: The minimum angle of sector(0-360). It prevents some sector from being too small when value is small.
|
||||
* `roundCap`: 是否启用圆弧效果。
|
||||
* `ignore`: 是否开启忽略数据。当为 `true` 时,数据值为 `ignoreValue` 时不进行绘制,对应的`Label`和`Legend`也不会显示。
|
||||
* `ignoreValue`: 忽略数据的默认值。默认值默认为0,当 `ignore` 为 `true` 才有效。
|
||||
* `avoidLabelOverlap`: 在饼图且标签外部显示的情况下,是否启用防止标签重叠策略,默认关闭,在标签拥挤重叠的情况下会挪动各个标签的位置,防止标签间的重叠。
|
||||
* `label`: 图形上的文本标签 [SerieLabel](#SerieLabel),可用于说明图形的一些数据信息,比如值,名称等。
|
||||
* `emphasis`: 高亮样式 [Emphasis](#Emphasis)。
|
||||
* `animation`: 起始动画 [SerieAnimation](#SerieAnimation)。
|
||||
* `data`: 系列中的数据项 [SerieData](#SerieData) 数组,可以设置`1`到`n`维数据。
|
||||
|
||||
## `Serie-Radar`
|
||||
|
||||
雷达图系列。
|
||||
|
||||
* `show`: 系列是否显示在图表上。
|
||||
* `type`: `Radar`。
|
||||
* `name`: 系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
|
||||
* `radarType`: 雷达图类型`RadarType`,支持以下类型:
|
||||
* `Multiple`: 多圈雷达图。此时可一个雷达里绘制多个圈,一个`serieData`就可组成一个圈(多维数据)。
|
||||
* `Single`: 单圈雷达图。此时一个雷达只能绘制一个圈,多个`serieData`组成一个圈,数据取自`data[1]`。
|
||||
* `radarIndex`: 雷达图所使用的 `radar` 组件的 `index`。
|
||||
* `symbol`: 标记的图形 [SerieSymbol](#SerieSymbol)。
|
||||
* `lineStyle`: 线条样式 [LineStyle](#LineStyle)。
|
||||
* `itemStyle`: 标记样式 [ItemStyle](#ItemStyle)。
|
||||
* `areaStyle`: 区域填充样式 [AreaStyle](#AreaStyle)。
|
||||
* `label`: 图形上的文本标签 [SerieLabel](#SerieLabel),可用于说明图形的一些数据信息,比如值,名称等。
|
||||
* `animation`: 起始动画 [SerieAnimation](#SerieAnimation)。
|
||||
* `data`: 系列中的数据项 [SerieData](#SerieData) 数组,可以设置`1`到`n`维数据。
|
||||
|
||||
## `Serie-Scatter`
|
||||
|
||||
散点图系列。
|
||||
|
||||
* `show`: 系列是否显示在图表上。
|
||||
* `type`: `Scatter`。
|
||||
* `name`: 系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
|
||||
* `clip`: 是否裁剪超出坐标系部分的图形。
|
||||
* `symbol`: 标记的图形 [SerieSymbol](#SerieSymbol)。
|
||||
* `label`: 图形上的文本标签 [SerieLabel](#SerieLabel),可用于说明图形的一些数据信息,比如值,名称等。
|
||||
* `emphasis`: 高亮样式 [Emphasis](#Emphasis)。
|
||||
* `animation`: 起始动画 [SerieAnimation](#SerieAnimation)。
|
||||
* `data`: 系列中的数据项 [SerieData](#SerieData) 数组,可以设置`1`到`n`维数据。
|
||||
|
||||
## `Serie-Heatmap`
|
||||
|
||||
热力图系列。
|
||||
|
||||
* `show`: 系列是否显示在图表上。
|
||||
* `type`: `Scatter`。
|
||||
* `name`: 系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
|
||||
* `ignore`: 是否开启忽略数据。当为 `true` 时,数据值为 `ignoreValue` 时不进行绘制。
|
||||
* `ignoreValue`: 忽略数据的默认值。默认值默认为`0`,当 `ignore` 为 `true` 才有效。
|
||||
* `label`: 图形上的文本标签 [SerieLabel](#SerieLabel),可用于说明图形的一些数据信息,比如值,名称等。
|
||||
* `emphasis`: 高亮样式 [Emphasis](#Emphasis)。
|
||||
* `animation`: 起始动画 [SerieAnimation](#SerieAnimation)。
|
||||
* `data`: 系列中的数据项 [SerieData](#SerieData) 数组,可以设置`1`到`n`维数据。
|
||||
|
||||
## `Serie-Gauge`
|
||||
|
||||
仪表盘系列。
|
||||
|
||||
* `show`: 系列是否显示在图表上。
|
||||
* `type`: `Gauge`。
|
||||
* `name`: 系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
|
||||
* `gaugeType`: 仪表盘类型,支持以下类型:
|
||||
* `Pointer`: 指针类型。
|
||||
* `ProgressBar`: 进度条类型。
|
||||
* `center`: 中心点坐标。当值为0-1的浮点数时表示百分比。
|
||||
* `radius`: 仪表盘半径。
|
||||
* `min`: 最小的数据值。映射到`startAngle`。
|
||||
* `max`: 最大的数据值。映射到`endAngle`。
|
||||
* `startAngle`: 仪表盘起始角度。和时钟一样,`12`点钟位置是`0`度,顺时针到`360`度。
|
||||
* `endAngle`: 仪表盘结束角度。和时钟一样,`12`点钟位置是`0`度,顺时针到`360`度。
|
||||
* `splitNumber`: 仪表盘刻度分割段数。
|
||||
* `roundCap`: 是否启用圆弧效果。
|
||||
* `titleStyle`: 仪表盘标题 [TitleStyle](#TitleStyle)。
|
||||
* `gaugeAxis`: 仪表盘坐标轴 [GaugeAxis](#GaugeAxis)。
|
||||
* `gaugePointer`: 仪表盘指针 [GaugePointer](#GaugePointer)。
|
||||
* `itemStyle`: 仪表盘指针样式 [ItemStyle](#ItemStyle)。
|
||||
* `label`: 图形上的文本标签 [SerieLabel](#SerieLabel),可用于说明图形的一些数据信息,比如值,名称等。
|
||||
* `emphasis`: 高亮样式 [Emphasis](#Emphasis)。
|
||||
* `animation`: 起始动画 [SerieAnimation](#SerieAnimation)。
|
||||
* `data`: 系列中的数据项 [SerieData](#SerieData) 数组,可以设置`1`到`n`维数据。仪表盘的数据一般只有一个,值通过`label`样式显示,`name`通过`titleStyle`样式显示。
|
||||
|
||||
## `Serie-Ring`
|
||||
|
||||
环形图系列。
|
||||
|
||||
* `show`: 系列是否显示在图表上。
|
||||
* `type`: `Ring`。
|
||||
* `name`: 系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
|
||||
* `center`: 中心点坐标。当值为`0-1`的浮点数时表示百分比。
|
||||
* `radius`: 仪表盘半径。
|
||||
* `startAngle`: 仪表盘起始角度。和时钟一样,`12`点钟位置是`0`度,顺时针到`360`度。
|
||||
* `ringGap`: 环形图的环间隙。
|
||||
* `roundCap`: 是否启用圆弧效果。
|
||||
* `clockwise`: 是否顺时针,默认为`true`。
|
||||
* `titleStyle`: 环形图中心标题 [TitleStyle](#TitleStyle)。
|
||||
* `itemStyle`: 环形图的圆环样式,包括设置背景颜色和边框等 [ItemStyle](#ItemStyle)。
|
||||
* `label`: 图形上的文本标签 [SerieLabel](#SerieLabel),可用于说明图形的一些数据信息,比如值,名称等。
|
||||
* `emphasis`: 高亮样式 [Emphasis](#Emphasis)。
|
||||
* `animation`: 起始动画 [SerieAnimation](#SerieAnimation)。
|
||||
* `data`: 系列中的数据项 [SerieData](#SerieData) 数组,可以设置`1`到`n`维数据。环形图的数据只有二维,`data[0]`表示当前值,`data[1]`表示最大值。
|
||||
|
||||
## `Serie-Liquid`
|
||||
|
||||
水位图系列。
|
||||
|
||||
* `show`: 系列是否显示在图表上。
|
||||
* `type`: `Liquid`。
|
||||
* `name`: 系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
|
||||
* `vesselIndex`: 水位图所使用的`vessel`组件的`index`。
|
||||
* `min`: 最小值。
|
||||
* `max`: 最大值。
|
||||
* `waveLength`: 水波长。
|
||||
* `waveHeight`: 水波高。
|
||||
* `waveSpeed`: 水波移动速度。正数时左移,负数时右移。
|
||||
* `waveOffset`: 水波偏移。
|
||||
* `itemStyle`: 环形图的圆环样式,包括设置背景颜色和边框等 [ItemStyle](#ItemStyle)。
|
||||
* `label`: 图形上的文本标签 [SerieLabel](#SerieLabel),可用于说明图形的一些数据信息,比如值,名称等。
|
||||
* `animation`: 起始动画 [SerieAnimation](#SerieAnimation)。
|
||||
* `data`: 系列中的数据项 [SerieData](#SerieData) 数组,可以设置`1`到`n`维数据。水位图的数据一般只有一个,表示当前水位值,用`max`设置最大水位值。
|
||||
|
||||
## `Serie-Candlestick`
|
||||
|
||||
K线图系列。
|
||||
|
||||
* `show`:系列是否显示在图表上。
|
||||
* `type`:`Candlestick`。
|
||||
* `name`:系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
|
||||
* `xAxisIndex`:使用的坐标轴X轴的 `index`,在单个图表实例中存在多个坐标轴的时候有用。
|
||||
* `yAxisIndex`:使用的坐标轴Y轴的 `index`,在单个图表实例中存在多个坐标轴的时候有用。
|
||||
* `minShow`:系列显示数据的最小索引。
|
||||
* `maxShow`:系列显示数据的最大索引。
|
||||
* `maxCache`:系列中可缓存的最大数据量。默认为`0`没有限制,大于0时超过指定值会移除旧数据再插入新数据。
|
||||
* `clip`:是否裁剪超出坐标系部分的图形。
|
||||
* `ignore`:是否开启忽略数据。当为 `true` 时,数据值为 `ignoreValue` 时不进行绘制。
|
||||
* `ignoreValue`:忽略数据的默认值。默认值默认为0,当 `ignore` 为 `true` 才有效。
|
||||
* `showAsPositiveNumber`:将负数数值显示为正数。一般和`AxisLabel`的`showAsPositiveNumber`配合使用。仅在折线图和柱状图中有效。
|
||||
* `large`:是否开启大数据量优化,在数据图形特别多而出现卡顿时候可以开启。开启后配合 largeThreshold 在数据量大于指定阈值的时候对绘制进行优化。缺点:优化后不能自定义设置单个数据项的样式,不能显示Label,折线图不绘制Symbol。
|
||||
* `largeThreshold`:开启大数量优化的阈值。只有当开启了large并且数据量大于该阀值时才进入性能模式。
|
||||
* `itemStyle`:环形图的圆环样式,包括设置背景颜色和边框等 [ItemStyle](#ItemStyle)。
|
||||
* `emphasis`:高亮样式 [Emphasis](#Emphasis)。
|
||||
* `animation`:起始动画 [SerieAnimation](#SerieAnimation)。
|
||||
* `data`:系列中的数据项 [SerieData](#SerieData) 数组,K线图至少需要4个维度的数组`[open, close, lowest, highest]`。
|
||||
|
||||
## `Settings`
|
||||
|
||||
全局参数设置组件。一般情况下可使用默认值,当有需要时可进行调整。
|
||||
|
||||
* `reversePainter`:Painter是否逆序。逆序时index大的serie最先绘制。
|
||||
* `maxPainter`:默认最大Painter数据,当Serie数量大于maxPainter时会平均分配Painter。
|
||||
* `basePainterMaterial`:Base Pointer 材质球,设置后会影响Axis等。
|
||||
* `seriePainterMaterial`:Serie Pointer 材质球,设置后会影响所有Serie。
|
||||
* `topPainterMaterial`:Top Pointer 材质球,设置后会影响Tooltip等。
|
||||
* `lineSmoothStyle`: 曲线平滑系数。通过调整平滑系数可以改变曲线的曲率,得到外观稍微有变化的不同曲线。
|
||||
* `lineSmoothness`: 曲线平滑度。值越小曲线越平滑,但顶点数也会随之增加。当开启有渐变的区域填充时,数值越大渐变过渡效果越差。
|
||||
* `lineSegmentDistance`: 线段的分割距离。普通折线图的线是由很多线段组成,段数由该数值决定。值越小段数越多,但顶点数也会随之增加。当开启有渐变的区域填充时,数值越大渐变过渡效果越差。
|
||||
* `cicleSmoothness`: 圆形(包括扇形、环形等)的平滑度。数越小圆越平滑,但顶点数也会随之增加。
|
||||
|
||||
## `SerieAnimation`
|
||||
|
||||
* `enable`: 是否开启动画系统。
|
||||
* ~~`threshold`: 是否开启动画的阈值,当单个系列显示的图形数量大于这个阈值时会关闭动画。~~
|
||||
* `fadeInDelay`: 设定的渐入动画延时,单位毫秒。如果要设置单个数据项的延时,可以用代码定制: `customFadeInDelay`。
|
||||
* `fadeInDuration`: 设定的渐入动画时长,单位毫秒。如果要设置单个数据项的渐入时长,可以用代码定制: `customFadeInDuration`。
|
||||
* `fadeOutDelay`: 设定的渐出动画延时,单位毫秒。如果要设置单个数据项的延时,可以用代码定制: `customFadeOutDelay`。
|
||||
* `fadeOutDuration`: 设定的渐出动画时长,单位毫秒。如果要设置单个数据项的渐出时长,可以用代码定制: `customFadeOutDuration`。
|
||||
* `dataChangeEnable`: 是否开启数据变更动画。
|
||||
* `dataChangeDuration`: 数据变更动画时长,单位毫秒。
|
||||
|
||||
## `AreaStyle`
|
||||
|
||||
* `show`: 是否显示区域填充。
|
||||
* `origin`: 区域填充的起始位置 `AreaOrigin`。有以下三种填充方式:
|
||||
* `Auto`: 填充坐标轴轴线到数据间的区域。
|
||||
* `Start`: 填充坐标轴底部到数据间的区域。
|
||||
* `End`: 填充坐标轴顶部到数据间的区域。
|
||||
* `color`: 区域填充的颜色,默认取 `serie` 对应的颜色。如果 `toColor` 不是默认值,则表示渐变色的起点颜色。
|
||||
* `toColor`: 区域填充的渐变色的终点颜色。
|
||||
* `highlightColor`: 高亮时区域填充的颜色,默认取 `serie` 对应的颜色。如果 `highlightToColor` 不是默认值,则表示渐变色的起点颜色。
|
||||
* `highlightToColor`: 高亮时区域填充的渐变色的终点颜色。
|
||||
* `opacity`: 图形透明度。支持从 `0` 到 `1` 的数字,为 `0` 时不绘制该图形。
|
||||
* `tooltipHighlight`: 鼠标悬浮时是否高亮之前的区域。
|
||||
|
||||
## `AxisLabel`
|
||||
|
||||
* `show`: 是否显示刻度标签。
|
||||
* `interval`: 坐标轴刻度标签的显示间隔,在类目轴中有效。`0`表示显示所有标签,`1`表示隔一个隔显示一个标签,以此类推。
|
||||
* `inside`: 刻度标签是否朝内,默认朝外。
|
||||
* `margin`: 刻度标签与轴线之间的距离。
|
||||
* `formatter`: 图例内容字符串模版格式器。支持用 `\n` 换行。模板变量为图例名称 `{value}`,数值格式化通过`numericFormatter`。
|
||||
* `numericFormatter`: 标准数字格式字符串。用于将数值格式化显示为字符串。使用`Axx`的形式: `A`是格式说明符的单字符,支持`C`货币、`D`十进制、`E`指数、`F`顶点数、`G`常规、`N`数字、`P`百分比、`R`往返过程、`X`十六进制等九种。`xx`是精度说明,从`0`-`99`。
|
||||
* `showAsPositiveNumber`: 将负数数值显示为正数。一般和`Serie`的`showAsPositiveNumber`配合使用。
|
||||
* `onZero`: 刻度标签显示在`0`刻度上。
|
||||
* `width`:刻度标签的宽。当为0时系统自动设置。
|
||||
* `height`:刻度标签的高。当为0时系统自动设置。
|
||||
|
||||
* `textLimit`: 文本自适应 [TextLimit](#TextLimit)。只在类目轴中有效。
|
||||
* `textStyle`: The style of text [TextStyle](#TextStyle).
|
||||
|
||||
## `AxisLine`
|
||||
|
||||
* `show`: 是否显示坐标轴轴线。
|
||||
* `onZero`: `X` 轴或者 `Y` 轴的轴线是否在另一个轴的 `0` 刻度上,只有在另一个轴为数值轴且包含 `0` 刻度时有效。
|
||||
* `width`: 坐标轴线线宽。
|
||||
* `symbol`: 是否显示箭头。
|
||||
* `symbolWidth`: 箭头宽。
|
||||
* `symbolHeight`: 箭头高。
|
||||
* `symbolOffset`: 箭头偏移。
|
||||
* `symbolDent`: 箭头的凹陷程度。
|
||||
|
||||
## `AxisName`
|
||||
|
||||
* `show`: 是否显示坐标名称。
|
||||
* `name`: 坐标轴名称。
|
||||
* `location`: 坐标轴名称的位置。支持以下类型:
|
||||
* `Start`: 坐标轴起始处。
|
||||
* `Middle`: 坐标轴中间。
|
||||
* `End`: 坐标轴末端。
|
||||
* `textStyle`: The style of text [TextStyle](#TextStyle).
|
||||
|
||||
## `AxisSplitLine`
|
||||
|
||||
* `show`: 是否显示坐标分割线。
|
||||
* `interval`: 分割线的显示间隔。`0` 表示显示所有分割线,`1` 表示隔一个隔显示一个分割线,以此类推。
|
||||
* `lineStyle`: 线条样式 [LineStyle](#LineStyle)。
|
||||
|
||||
## `AxisSplitArea`
|
||||
|
||||
* `show`: 是否显示坐标分割区域。
|
||||
* `color`: 分隔区域颜色。分隔区域会按数组中颜色的顺序依次循环设置颜色。默认是一个深浅的间隔色。
|
||||
|
||||
## `AxisTick`
|
||||
|
||||
* `show`: 是否显示坐标轴刻度。
|
||||
* `alignWithLabel`: 类目轴中在 `boundaryGap` 为 `true` 的时候有效,可以保证刻度线和标签对齐。
|
||||
* `inside`: 坐标轴刻度是否朝内,默认朝外。
|
||||
* `length`: 坐标轴刻度的长度。
|
||||
* `width`: 坐标轴刻度的宽度。默认为0时宽度和坐标轴一致。
|
||||
* `showStartTick`:是否显示第一个刻度。
|
||||
* `showEndTick`:是否显示最后一个刻度。
|
||||
|
||||
## `Emphasis`
|
||||
|
||||
* `show`: 是否启用高亮样式。
|
||||
* `label`: 图形文本标签样式 [SerieLabel](#SerieLabel)。
|
||||
* `itemStyle`: 图形样式 [ItemStyle](#ItemStyle)。
|
||||
|
||||
## `ItemStyle`
|
||||
|
||||
* `show`: 是否启用。
|
||||
* `color`: 颜色。对于K线图,对应阳线的颜色。
|
||||
* `color0`: 颜色。对于K线图,对应阴线的颜色。
|
||||
* `toColor`: 渐变颜色1。
|
||||
* `toColor2`: 渐变颜色2。只在折线图中有效。
|
||||
* `backgroundColor`: 背景颜色。
|
||||
* `backgroundWidth`: 背景的宽。
|
||||
* `centerColor`: 中心区域的颜色。如环形图的中心区域。
|
||||
* `centerGap`: 中心区域的间隙。如环形图的中心区域于最内环的间隙。
|
||||
* `borderType`: 边框的类型。
|
||||
* `borderColor`: 边框的颜色。对于K线图,对应阳线的边框颜色。
|
||||
* `borderColor0`: 边框的颜色。对于K线图,对应阴线的边框颜色。
|
||||
* `borderWidth`: 边框宽。
|
||||
* `opacity`: 透明度。
|
||||
* `tooltipFormatter`: 提示框单项的字符串模版格式器。具体配置参考`Tooltip`的`formatter`。
|
||||
* `numericFormatter`: 标准数字格式字符串。用于将数值格式化显示为字符串。使用`Axx`的形式: `A`是格式说明符的单字符,支持`C`货币、`D`十进制、`E`指数、`F`顶点数、`G`常规、`N`数字、`P`百分比、`R`往返过程、`X`十六进制等九种。`xx`是精度说明,从`0`-`99`。此字段优先于`SerieLabel`和`Tooltip`的`numericFormatter`。
|
||||
* `cornerRadius`: 圆角半径。用数组分别指定4个圆角半径(顺时针左上,右上,右下,左下)。支持用0-1的浮点数设置百分比。
|
||||
|
||||
## `LineArrow`
|
||||
|
||||
* `show`: 是否显示箭头。
|
||||
* `position`: 箭头显示位置。支持以下两种位置:
|
||||
* `End`: 末端显示。最后一个数据上显示箭头。
|
||||
* `Start`: 起始端显示。第一个数据上显示箭头。
|
||||
* `width`: 箭头宽。
|
||||
* `height`: 箭头长。
|
||||
* `offset`: 箭头偏移。默认箭头的中心点和数据坐标点一致,可通过 `offset` 调整偏移。
|
||||
* `dent`: 箭头的凹度。
|
||||
|
||||
## `LineStyle`
|
||||
|
||||
* `show`: 是否显示线条。当作为子组件,它的父组件有参数控制是否显示时,改参数无效。
|
||||
* `type`: 线条类型。支持以下五种类型:
|
||||
* `None`: 不显示分割线。
|
||||
* `Solid`: 实线。
|
||||
* `Dashed`: 虚线。
|
||||
* `Dotted`: 点线。
|
||||
* `DashDot`: 点划线。
|
||||
* `DashDotDot`: 双点划线。
|
||||
* `color`: 线条颜色。默认和 `serie` 一致。
|
||||
* `toColor`: 线的渐变颜色(需要水平方向渐变时)。
|
||||
* `toColor2`: 线的渐变颜色2(需要水平方向三个渐变色的渐变时)。
|
||||
* `width`: 线条宽。
|
||||
* `opacity`: 线条的透明度。支持从 `0` 到 `1` 的数字,为 `0` 时不绘制该图形。
|
||||
|
||||
## `Location`
|
||||
|
||||
* `align`: 对齐方式。有以下对齐方式。
|
||||
* `TopLeft`: 左上角对齐。
|
||||
* `TopRight`: 右上角对齐。
|
||||
* `TopCenter`: 置顶居中对齐。
|
||||
* `BottomLeft`: 左下对齐。
|
||||
* `BottomRight`: 右下对齐。
|
||||
* `BottomCenter`: 底部居中对齐。
|
||||
* `Center`: 居中对齐。
|
||||
* `CenterLeft`: 中部靠左对齐。
|
||||
* `CenterRight`: 中部靠右对齐。
|
||||
* `left`: 离容器左侧的距离。
|
||||
* `right`: 离容器右侧的距离。
|
||||
* `top`: 离容器上侧的距离。
|
||||
* `bottom`: 离容器下侧的距离。
|
||||
|
||||
## `SerieData`
|
||||
|
||||
* `name`: 数据项名称。
|
||||
* `selected`: 该数据项是否被选中。
|
||||
* `radius`: 自定义半径。可用在饼图中自定义某个数据项的半径。
|
||||
* `iconStyle`: 数据项图标样式。
|
||||
* `enableLabel`: 是否启用单个数据项的标签设置。
|
||||
* `label`: 单个数据项的标签设置。
|
||||
* `enableItemStyle`: 是否启用单个数据项的样式。
|
||||
* `itemStyle`: 单个数据项的样式设置。
|
||||
* `enableEmphasis`: 是否启用单个数据项的高亮样式。
|
||||
* `emphasis`: 单个数据项的高亮样式设置。
|
||||
* `enableSymbol`: 是否启用单个数据项的标记设置。
|
||||
* `symbol`: 单个数据项的标记设置。
|
||||
* `data`: 可指定任意维数的数值列表。对于折线图和柱状图,`data`其实是`size`为`2`的数组,`data[0]`是x的编号,`data[1]`是`y`的数值,默认显示`data[1]`。其他图表看需求而定是长度大于`2`的数组。可通过`Serie`的`showDataDimension`指定数据长度。
|
||||
|
||||
## `SerieLabel`
|
||||
|
||||
* `show`: 是否显示文本标签。
|
||||
* `position`: 标签的位置。折线图时强制默认为 `Center`,支持以下 `5` 种位置:
|
||||
* `Outside`: 饼图扇区外侧,通过视觉引导线连到相应的扇区。只在饼图种可用。
|
||||
* `Inside`: 饼图扇区内部。只在饼图可用。
|
||||
* `Center`: 在中心位置(折线图,柱状图,饼图)。
|
||||
* `Top`: 顶部(柱状图)。
|
||||
* `Bottom`: 底部(柱状图)。
|
||||
* `formatter`: 标签内容字符串模版格式器。支持用 `\n` 换行。模板变量有: `{a}`: 系列名;`{b}`: 数据名;`{c}`: 数据值;`{d}`: 百分比。示例: `{b}:{c}`。
|
||||
* `numericFormatter`: 标准数字格式字符串。用于将数值格式化显示为字符串。使用`Axx`的形式: `A`是格式说明符的单字符,支持`C`货币、`D`十进制、`E`指数、`F`顶点数、`G`常规、`N`数字、`P`百分比、`R`往返过程、`X`十六进制等九种。`xx`是精度说明,从`0`-`99`。
|
||||
* `offset`: 距离图形元素的偏移。
|
||||
* `autoOffset`: 是否开启自动偏移。当开启时,Y的偏移会自动判断曲线的开口来决定向上还是向下偏移。
|
||||
* `backgroundWidth`: 标签的背景宽度。一般不用指定,不指定时则自动是文字的宽度。
|
||||
* `backgroundHeight`: 标签的背景高度。一般不用指定,不指定时则自动是文字的高度。
|
||||
* `paddingLeftRight`: 标签文字和边框的左右边距。
|
||||
* `paddingTopBottom`: 标签文字和边框的上下边距。
|
||||
* `line`: 是否显示视觉引导线。在 `label` 位置 设置为 `'Outside'` 的时候会显示视觉引导线。
|
||||
* `lineType`: 视觉引导线类型。支持以下几种类型:
|
||||
* `BrokenLine`: 折线。
|
||||
* `Curves`: 曲线。
|
||||
* `HorizontalLine`: 水平线。
|
||||
* `lineColor`: 视觉引导线自定义颜色。
|
||||
* `lineWidth`: 视觉引导线的宽度。
|
||||
* `lineLength1`: 视觉引导线第一段的长度。
|
||||
* `lineLength2`: 视觉引导线第二段的长度。
|
||||
* `border`: 是否显示边框。
|
||||
* `borderWidth`: 边框宽度。
|
||||
* `borderColor`: 边框颜色。
|
||||
* `textStyle`: The style of text [TextStyle](#TextStyle).
|
||||
|
||||
## `SerieSymbol`
|
||||
|
||||
* `show`: 是否显示标记。
|
||||
* `type`: 标记类型。支持以下六种类型:
|
||||
* `EmptyCircle`: 空心圆。
|
||||
* `Circle`: 实心圆。
|
||||
* `Rect`: 正方形。可通过设置`itemStyle`的`cornerRadius`变成圆角矩形。
|
||||
* `Triangle`: 三角形。
|
||||
* `Diamond`: 菱形。
|
||||
* `None`: 不显示标记。
|
||||
* `gap`: 图形标记的外留白距离。
|
||||
* `sizeType`: 标记图形的大小获取方式。支持以下三种类型:
|
||||
* `Custom`: 自定义大小。
|
||||
* `FromData`: 通过 `dataIndex` 从数据中获取,再乘以一个比例系数 `dataScale` 。
|
||||
* `Callback`: 通过回调函数 `sizeCallback` 获取。
|
||||
* `size`: 标记的大小。
|
||||
* `selectedSize`: 被选中的标记的大小。
|
||||
* `dataIndex`: 当 `sizeType` 指定为 `FromData` 时,指定的数据源索引。
|
||||
* `dataScale`: 当 `sizeType` 指定为 `FromData` 时,指定的倍数系数。
|
||||
* `selectedDataScale`: 当 `sizeType` 指定为 `FromData` 时,指定的高亮倍数系数。
|
||||
* `sizeCallback`: 当 `sizeType` 指定为 `Callback` 时,指定的回调函数。
|
||||
* `selectedSizeCallback`: 当 `sizeType` 指定为 `Callback` 时,指定的高亮回调函数。
|
||||
* `color`: 标记图形的颜色,默认和系列一致。
|
||||
* `opacity`: 图形标记的透明度。
|
||||
* `startIndex`: 开始显示图形标记的索引。
|
||||
* `interval`: 显示图形标记的间隔。`0`表示显示所有标签,`1`表示隔一个隔显示一个标签,以此类推。
|
||||
* `forceShowLast`: 是否强制显示最后一个图形标记。默认为 `false`。
|
||||
|
||||
## `IconStyle`
|
||||
|
||||
* `show` : whether to show the icon.
|
||||
* `Layer` : Shows on top or bottom.
|
||||
* `Sprite` : Icon.
|
||||
* `color` : color.
|
||||
* `width` : The width of the icon.
|
||||
* `height` : the height of the icon.
|
||||
* `Offset` : Offset.
|
||||
|
||||
[返回首页](https://github.com/monitor1394/unity-ugui-XCharts)
|
||||
[XChartsAPI接口](XChartsAPI.md)
|
||||
[XCharts问答](XCharts问答.md)
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 81071e0166b9e49958800af4678e69ae
|
||||
guid: 3fa7a80a30cd846139159beaadba05f2
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
161
Assets/XCharts/Documentation/xcharts-questions-and-answers-EN.md
Normal file
161
Assets/XCharts/Documentation/xcharts-questions-and-answers-EN.md
Normal file
@@ -0,0 +1,161 @@
|
||||
# XCharts Q&A
|
||||
|
||||
[XCharts Homepage](https://github.com/monitor1394/unity-ugui-XCharts)
|
||||
[XCharts API](xcharts-api-EN.md)
|
||||
[XCharts Configuration](xcharts-configuration-EN.md)
|
||||
|
||||
[QA 1: How to adjust the margin between the axis and the background?](#How-to-adjust-the-margin-between-the-axis-and-the=-background)
|
||||
[QA 2: How to play agian the fadeIn animation?](#How-to-play-agian-the-fadeIn-animation)
|
||||
[QA 3: How to customize the color of data item in line chart and pie chart?](#How-to-customize-the-color-of-data-item-in-line-chart-and-pie-chart)
|
||||
[QA 4: How to formatter the text of axis label, such as add a units text?](#How-to-formatter-the-text-of-axis-label-such-as-add-a-units-text)
|
||||
[QA 5: How to stack the bar of bar chart](#How-to-stack-the-bar-of-bar-chart)
|
||||
[QA 6: How to make the bar serie in the same bar but not stack?](#How-to-make-the-bar-serie-in-the-same-bar-but-not-stack)
|
||||
[QA 7: How to adjust the bar width and gap of barchart?](#How-to-adjust-the-bar-width-and-gap-of-barchart)
|
||||
[QA 8: How to adjust the color of bar?](#How-to-adjust-the-color-of-bar)
|
||||
[QA 9: Can I adjust the anchor of chart?](#Can-I-adjust-the-anchor-of-chart)
|
||||
[QA 10: Can display more than 1000 data?](#Can-display-more-than-1000-data)
|
||||
[QA 11: Can line chart drawing be dash, dot and dash-dot?](#Can-line-chart-drawing-be-dash-dot-and-dash-dot)
|
||||
[QA 12: How to limit the value range of the Y-axis?](#How-to-limit-the-value-range-of-the-Y-axis)
|
||||
[QA 13: How to customize the tick value range of value axis?](#How-to-customize-the-tick-value-range-of-value-axis)
|
||||
[QA 14: How to display text at the top of data items?](#How-to-display-text-at-the-top-of-data-items)
|
||||
[QA 15: How do I customize icons for data items?](#How-do-I-customize-icons-for-data-items)
|
||||
[QA 16: How to anti-aliasing and make the chart smoother?](#How-to-anti-aliasing-and-make-the-chart-smoother)
|
||||
[QA 17: Why does mouse over chart Tooltip not show?](#Why-does-mouse-over-chart-Tooltip-not-show)
|
||||
[QA 18: How not to display the bar line of Tooltip?](#How-not-to-display-the-bar-line-of-Tooltip)
|
||||
[QA 19: How do I customize the display of Tooltip?](#How-do-I-customize-the-display-of-Tooltip)
|
||||
[QA 20: How do I get the Y-axis to display multiple decimal places?](#How-do-I-get-the-Y-axis-to-display-multiple-decimal-places)
|
||||
[QA 21: How do I dynamically update data with code?](#How-do-I-dynamically-update-data-with-code)
|
||||
[QA 22: How to display legend? Why are legends sometimes not displayed?](#How-to-display-legend?Why-are-legends-sometimes-not-displayed)
|
||||
[QA 23: How to make chart as prefab?](#How-to-make-chart-as-prefab)
|
||||
[QA 24: How do I draw custom graphic in chart,such as line or dot?](#How-do-I-draw-custom-content-in-chart-such-as-line-or-dot)
|
||||
[QA 25: How to achieve similar data movement effect of ELECTRO cardiogram?](#How-to-achieve-similar-data-movement-effect-of-ELECTRO-cardiogram)
|
||||
[QA 26: How do I use the background component? What are the conditions?](#How-do-I-use-the-background-component-What-are-the-conditions)
|
||||
[QA 27: Mesh can not have more than 65000 vertices?](#Mesh-cannot-have-more-than-65000-vertices)
|
||||
[QA 28: Why are the parameters set in Serie reset after they run?](#Why-are-the-parameters-set-in-Serie-reset-after-they-run)
|
||||
[QA 29: Why are many custom colors lost after upgrading to 1.6.0? How should I upgrade?](#Why_are_many_custom_colors_lost_after_upgrading_to_1_6_0_How_should_I_upgrade)
|
||||
|
||||
## How-to-adjust-the-margin-between-the-axis-and-the=-background
|
||||
|
||||
A: `Grid` conponent,which can adjust the left, right, up, down margins of chart.
|
||||
|
||||
## How-to-play-agian-the-fadeIn-animation
|
||||
|
||||
A: call the `chart.AnimationReset()` API.
|
||||
|
||||
## How-to-customize-the-color-of-data-item-in-line chart-and-pie-chart
|
||||
|
||||
A: `Theme`->`colorPalette`, or the sub component `LineStyle` and `ItemStyle` of `Serie`.
|
||||
|
||||
## How-to-formatter-the-text-of-axis-label-such-as-add-a-units-text
|
||||
|
||||
A: Adjust `formatter` and `numericFormatter` parameter of `Legend`, `AxisLabel`, `Tooltop`, `SerieLabel`.
|
||||
|
||||
## How-to-stack-the-bar-of-bar-chart
|
||||
|
||||
A: Set the `stack` parameter of `Serie`, the series will stack in a bar with the same `stack`.
|
||||
|
||||
## How-to-make-the-bar-serie-in-the-same-bar-but-not-stack
|
||||
|
||||
A: Set the `barGap` of `Serie` to `-1`,`stack` to null.
|
||||
|
||||
## How-to-adjust-the-bar-width-and-gap-of-barchart
|
||||
|
||||
A: Adjust the `barWidth` and `barGap` parameter of `Serie`, the last `serie`'s `barWidth` and `barGap` are valid when multiple `serie`.
|
||||
|
||||
## How-to-adjust-the-color-of-bar
|
||||
|
||||
A: Adjust the `ItemStyle` of `Data` in `inspector`.
|
||||
|
||||
## Can-I-adjust-the-anchor-of-chart
|
||||
|
||||
A: Yes, you can set any one of 16 anchors but the value use default.
|
||||
|
||||
## Can-display-more-than-1000-data
|
||||
|
||||
A: Yes. But `UGUI` limits `65000` vertices to a single `Graphic`, so too much data may not be displayed completely. The sampling simplification curve can be turned on by setting the sampling distance `sampleDist`. You can also set some parameters to reduce the number of vertices in the chart to help show more data. Such as reducing the size of the chart, close or reduce the axis of the client drawing, close `Symbol` and `Label` display. A `Normal` line chart occupies fewer vertices than a `Smooth` line chart. The `1.5.0` and above versions can set `large` and `largeThreshold` parameters to enable performance mode.
|
||||
|
||||
## Can-line-chart-drawing-be-dash-dot-and-dash-dot
|
||||
|
||||
A: Yes. Adjust the `lineType` of `Serie`.
|
||||
|
||||
## How-to-limit-the-value-range-of-the-Y-axis
|
||||
|
||||
A: Select the `minMaxType` of `Axis` as `Custom`, then set `min` and `max` to the values you want.
|
||||
|
||||
## How-to-customize-the-tick-value-range-of-value-axis
|
||||
|
||||
A: By default, it is automatically split by the `splitNumber` of `Axis`. Also, you can customize the `interval` to the range you want.
|
||||
|
||||
## How-to-display-text-at-the-top-of-data-items
|
||||
|
||||
A: Adjust the `Label` of `Serie`.
|
||||
|
||||
## How-do-I-customize-icons-for-data-items
|
||||
|
||||
A: Set the `Icon` of `Data` in `Serie`.
|
||||
|
||||
## How-to-anti-aliasing-and-make-the-chart-smoother
|
||||
|
||||
A: Open the `Anti-Aliasing` setting in `Unity`. Selected the UI Canvas `Render Mode` as `Screen Space-Camera`, selected `MSAA`, set `4` times or higher anti-aliasing. The sawtooth can only be reduced and unavoidable. The higher the pixel, the less obvious the sawtooth is.
|
||||
|
||||
## Why-does-mouse-over-chart-Tooltip-not-show
|
||||
|
||||
A: Verify `Toolip` is opened. Verify that the parent node of chart has turned off mouse events.
|
||||
|
||||
## How-not-to-display-the-bar-line-of-Tooltip
|
||||
|
||||
A: Set the `type` of `Tooltup` as `None`. Or adjust the parameters of `lineStyle`.
|
||||
|
||||
## How-do-I-customize-the-display-of-Tooltip
|
||||
|
||||
A: See the `formatter`, `itemFormatter`, `titleFormatter` parameters of `Tooltip`.
|
||||
|
||||
## How-do-I-get-the-Y-axis-to-display-multiple-decimal-places
|
||||
|
||||
A: Set the `numericFormatter` parameter of `AxisLabel`.
|
||||
|
||||
## How-do-I-dynamically-update-data-with-code
|
||||
|
||||
A: See example: `Example01_UpdateData.cs`
|
||||
|
||||
## How-to-display-legend?Why-are-legends-sometimes-not-displayed
|
||||
|
||||
A: First, the `name` in `Serie` must have a value that is not null. Then set `Legend` is `show`, where `data` can be empty by default, indicating that all legends are displayed. If you only want to display part of the `Serie` legend, fill in `data` with the `name` of the legend you want to display. If none of the values in `data` are `name` of the series, the legend will not be displayed.
|
||||
|
||||
## How-to-make-chart-as-prefab
|
||||
|
||||
A: Before make prefab, please delete all sub gameObject under chart which auto-created by `XCharts`.
|
||||
|
||||
## How-do-I-draw-custom-content-in-chart-such-as-line-or-dot
|
||||
|
||||
A: Implement `onCustomDraw` of chart, see `Example12_CustomDrawing.cs`.
|
||||
|
||||
## How-to-achieve-similar-data-movement-effect-of-ELECTRO-cardiogram
|
||||
|
||||
A: See `Example_Dynamic.cs`.
|
||||
|
||||
## How-do-I-use-the-background-component-What-are-the-conditions
|
||||
|
||||
A: Setting `show` to `true` for the `background` component.
|
||||
|
||||
## Mesh-cannot-have-more-than-65000-vertices
|
||||
|
||||
A: This is the limit of `UGUI` on the number of vertices for a single `Graphic`. `XCharts` is draw chart on a single `Graphic`, so there is also this limitation. The solution can be referred to: [QA 10: Can display more than 1000 data](#Can-display-more-than-1000-data)
|
||||
|
||||
## Why-are-the-parameters-set-in-Serie-reset-after-they-run
|
||||
|
||||
A: Check whether `RemoveData()` and add new `Serie` in the code. If you want to keep the configuration of `Serie`, you can only `ClearData()` which just clear data and then readd the data to the old serie.
|
||||
|
||||
## Why_are_many_custom_colors_lost_after_upgrading_to_1_6_0_How_should_I_upgrade
|
||||
|
||||
A: In version `1.6.0`, in order to reduce implicit conversion, all drawing related `Color` was changed to `Color32`, so some custom colors were lost. The main components affected are: `ItemStyle`, `LineStyle`, `AreaStyle`, `Vessel`, `VisualMap`, `AxisSplitArea`, `AxisSplitLine`, `GaugeAxis`,`SerieLabel`, etc. Can use the script [UpgradeChartColor.cs](https://github.com/monitor1394/unity-ugui-XCharts/blob/master/Assets/XCharts/Editor/Tools/UpgradeChartColor.cs) to upgrade.
|
||||
The upgrade steps are as follows:
|
||||
1. Back up the project.
|
||||
2. Download or copy the script [UpgradeChartColor.cs](https://github.com/monitor1394/unity-ugui-XCharts/blob/master/Assets/XCharts/Editor/Tools/UpgradeChartColor.cs) in the old project `Editor`, Change the `color` field inside to `color.clear` (because some fields may not exist in the old version).
|
||||
3. After compilation, the old version of color configuration file is exported through `menu bar -> XCharts-> ExportColorConfig` (the configuration file is saved by default to `color.config` under `Assets`).
|
||||
4. Upgrade `XCharts` to the latest version.
|
||||
5. The custom color can be restored by importing `color.config` through `menu bar -> XCharts-> ImportColorConfig` (if `color.config` is not under `Assets` of the upgraded project, copy it to this directory).
|
||||
|
||||
[XCharts Homepage](https://github.com/monitor1394/unity-ugui-XCharts)
|
||||
[XCharts API](xcharts-api-EN.md)
|
||||
[XCharts Configuration](xcharts-configuration-EN.md)
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f74b65f3be5d64689a5db6bdbc91df3e
|
||||
guid: ca54a17a3a60f4b36b0be43df9f1c33d
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
|
||||
@@ -19,13 +19,14 @@ namespace XCharts
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
m_Target = (BarChart)target;
|
||||
if(target == null) return;
|
||||
m_Chart = (BarChart)target;
|
||||
}
|
||||
|
||||
protected override void OnEndInspectorGUI()
|
||||
{
|
||||
base.OnEndInspectorGUI();
|
||||
if (m_Target == null && target == null)
|
||||
if (m_Chart == null && target == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5acea6fd06c0e9c498c434f941e4cba9
|
||||
timeCreated: 1554219116
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using System.Text;
|
||||
@@ -14,22 +15,36 @@ namespace XCharts
|
||||
/// <summary>
|
||||
/// Editor class used to edit UI BaseChart.
|
||||
/// </summary>
|
||||
|
||||
[CustomEditor(typeof(BaseChart), false)]
|
||||
public class BaseChartEditor : Editor
|
||||
{
|
||||
protected BaseChart m_Target;
|
||||
#if UNITY_2019_3_OR_NEWER
|
||||
private const float k_IconWidth = 14;
|
||||
private const float k_IconGap = 0f;
|
||||
private const float k_IconXOffset = 10f;
|
||||
private const float k_IconYOffset = -1.5f;
|
||||
#else
|
||||
private const float k_IconWidth = 14;
|
||||
private const float k_IconGap = 0f;
|
||||
private const float k_IconXOffset = 4f;
|
||||
private const float k_IconYOffset = -3f;
|
||||
#endif
|
||||
|
||||
protected BaseChart m_Chart;
|
||||
protected SerializedProperty m_Script;
|
||||
protected SerializedProperty m_MultiComponentMode;
|
||||
protected SerializedProperty m_EnableTextMeshPro;
|
||||
protected SerializedProperty m_ChartWidth;
|
||||
protected SerializedProperty m_ChartHeight;
|
||||
protected SerializedProperty m_Theme;
|
||||
protected SerializedProperty m_ThemeInfo;
|
||||
protected SerializedProperty m_Background;
|
||||
protected SerializedProperty m_Title;
|
||||
protected SerializedProperty m_Legend;
|
||||
protected SerializedProperty m_Tooltip;
|
||||
protected SerializedProperty m_Series;
|
||||
protected SerializedProperty m_Settings;
|
||||
protected SerializedProperty m_Theme;
|
||||
protected SerializedProperty m_Background;
|
||||
protected SerializedProperty m_Titles;
|
||||
protected SerializedProperty m_Legends;
|
||||
protected SerializedProperty m_Tooltips;
|
||||
protected SerializedProperty m_Vessels;
|
||||
protected SerializedProperty m_Radars;
|
||||
protected SerializedProperty m_Series;
|
||||
protected SerializedProperty m_Large;
|
||||
protected SerializedProperty m_ChartName;
|
||||
protected SerializedProperty m_DebugMode;
|
||||
@@ -41,29 +56,38 @@ namespace XCharts
|
||||
private bool m_CheckWarning = false;
|
||||
private StringBuilder sb = new StringBuilder();
|
||||
|
||||
private bool m_BaseFoldout;
|
||||
private bool m_CustomFoldout;
|
||||
protected bool m_ShowAllComponent;
|
||||
protected Dictionary<string, bool> m_Flodouts = new Dictionary<string, bool>();
|
||||
|
||||
protected virtual void OnEnable()
|
||||
{
|
||||
m_Target = (BaseChart)target;
|
||||
if (target == null) return;
|
||||
m_Chart = (BaseChart)target;
|
||||
m_Script = serializedObject.FindProperty("m_Script");
|
||||
m_MultiComponentMode = serializedObject.FindProperty("m_MultiComponentMode");
|
||||
m_EnableTextMeshPro = serializedObject.FindProperty("m_EnableTextMeshPro");
|
||||
m_ChartName = serializedObject.FindProperty("m_ChartName");
|
||||
m_ChartWidth = serializedObject.FindProperty("m_ChartWidth");
|
||||
m_ChartHeight = serializedObject.FindProperty("m_ChartHeight");
|
||||
m_Theme = serializedObject.FindProperty("m_Theme");
|
||||
m_ThemeInfo = serializedObject.FindProperty("m_ThemeInfo");
|
||||
m_Settings = serializedObject.FindProperty("m_Settings");
|
||||
m_Background = serializedObject.FindProperty("m_Background");
|
||||
m_Title = serializedObject.FindProperty("m_Title");
|
||||
m_Legend = serializedObject.FindProperty("m_Legend");
|
||||
m_Tooltip = serializedObject.FindProperty("m_Tooltip");
|
||||
m_Titles = serializedObject.FindProperty("m_Titles");
|
||||
m_Legends = serializedObject.FindProperty("m_Legends");
|
||||
m_Tooltips = serializedObject.FindProperty("m_Tooltips");
|
||||
m_Vessels = serializedObject.FindProperty("m_Vessels");
|
||||
m_Series = serializedObject.FindProperty("m_Series");
|
||||
m_Radars = serializedObject.FindProperty("m_Radars");
|
||||
|
||||
m_Large = serializedObject.FindProperty("m_Large");
|
||||
m_Settings = serializedObject.FindProperty("m_Settings");
|
||||
m_DebugMode = serializedObject.FindProperty("m_DebugMode");
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
if (m_Target == null && target == null)
|
||||
if (m_Chart == null && target == null)
|
||||
{
|
||||
base.OnInspectorGUI();
|
||||
return;
|
||||
@@ -75,58 +99,208 @@ namespace XCharts
|
||||
OnStartInspectorGUI();
|
||||
OnMiddleInspectorGUI();
|
||||
OnEndInspectorGUI();
|
||||
OnDebugInspectorGUI();
|
||||
|
||||
CheckWarning();
|
||||
EditorGUILayout.Space();
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
|
||||
protected virtual void OnStartInspectorGUI()
|
||||
{
|
||||
EditorGUILayout.PropertyField(m_Script);
|
||||
|
||||
EditorGUILayout.PropertyField(m_ChartName);
|
||||
EditorGUILayout.PropertyField(m_ThemeInfo, true);
|
||||
EditorGUI.BeginChangeCheck();
|
||||
EditorGUILayout.PropertyField(m_Background, true);
|
||||
|
||||
var m_Show = m_Background.FindPropertyRelative("m_Show");
|
||||
if (m_Show.boolValue && !m_Target.CanShowBackgroundComponent())
|
||||
BlockStart();
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
var version = string.Format("v{0}_{1}", XChartsMgr.version, XChartsMgr.versionDate);
|
||||
if (m_EnableTextMeshPro.boolValue)
|
||||
{
|
||||
var msg = "The background component cannot be activated because chart is controlled by LayoutGroup,"
|
||||
+ " or its parent have more than one child.";
|
||||
EditorGUILayout.HelpBox(msg, MessageType.Error);
|
||||
version += " TMP";
|
||||
}
|
||||
EditorGUILayout.PropertyField(m_Title, true);
|
||||
EditorGUILayout.PropertyField(m_Legend, true);
|
||||
EditorGUILayout.PropertyField(m_Tooltip, true);
|
||||
EditorGUILayout.LabelField(version);
|
||||
|
||||
if (GUILayout.Button("Github"))
|
||||
{
|
||||
Application.OpenURL("https://github.com/monitor1394/unity-ugui-XCharts");
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
BlockEnd();
|
||||
|
||||
BlockStart();
|
||||
m_BaseFoldout = EditorGUILayout.Foldout(m_BaseFoldout, "Base", true);
|
||||
if (m_BaseFoldout)
|
||||
{
|
||||
EditorGUILayout.PropertyField(m_Script);
|
||||
EditorGUILayout.PropertyField(m_ChartName);
|
||||
var fileds = m_Chart.GetCustomChartInspectorShowFileds();
|
||||
if (fileds != null && fileds.Length > 0)
|
||||
{
|
||||
foreach (var filed in fileds)
|
||||
{
|
||||
EditorGUILayout.PropertyField(serializedObject.FindProperty(filed));
|
||||
}
|
||||
}
|
||||
}
|
||||
BlockEnd();
|
||||
|
||||
BlockField(m_Theme);
|
||||
BlockField(m_Settings);
|
||||
BlockField(m_Background);
|
||||
|
||||
m_ShowAllComponent = m_MultiComponentMode.boolValue;
|
||||
BlockListField(m_ShowAllComponent, m_Titles);
|
||||
BlockListField(m_ShowAllComponent, m_Legends);
|
||||
BlockListField(m_ShowAllComponent, m_Tooltips);
|
||||
BlockListField(m_ShowAllComponent, SerieType.Liquid, m_Vessels);
|
||||
BlockListField(m_ShowAllComponent, SerieType.Radar, m_Radars);
|
||||
}
|
||||
|
||||
protected virtual void OnMiddleInspectorGUI()
|
||||
{
|
||||
EditorGUILayout.PropertyField(m_Series, true);
|
||||
EditorGUILayout.PropertyField(m_Settings, true);
|
||||
BlockField(m_Series);
|
||||
}
|
||||
|
||||
protected virtual void OnEndInspectorGUI()
|
||||
{
|
||||
EditorGUILayout.Space();
|
||||
EditorGUILayout.Space();
|
||||
}
|
||||
|
||||
protected virtual void OnDebugInspectorGUI()
|
||||
{
|
||||
BlockStart();
|
||||
EditorGUILayout.PropertyField(m_DebugMode);
|
||||
EditorGUILayout.PropertyField(m_MultiComponentMode);
|
||||
EditorGUILayout.Space();
|
||||
EditorGUILayout.Space();
|
||||
MoreDebugInspector();
|
||||
CheckWarning();
|
||||
BlockEnd();
|
||||
}
|
||||
|
||||
protected virtual void MoreDebugInspector()
|
||||
{
|
||||
}
|
||||
|
||||
protected void BlockStart()
|
||||
{
|
||||
if (XChartsSettings.editorBlockEnable) EditorGUILayout.BeginVertical(EditorStyles.helpBox);
|
||||
}
|
||||
|
||||
protected void BlockEnd()
|
||||
{
|
||||
if (XChartsSettings.editorBlockEnable) EditorGUILayout.EndVertical();
|
||||
}
|
||||
|
||||
protected void BlockField(params SerializedProperty[] props)
|
||||
{
|
||||
if (props.Length == 0) return;
|
||||
BlockStart();
|
||||
foreach (var prop in props)
|
||||
EditorGUILayout.PropertyField(prop, true);
|
||||
BlockEnd();
|
||||
}
|
||||
|
||||
protected void BlockListField(bool all, params SerializedProperty[] props)
|
||||
{
|
||||
if (props.Length == 0) return;
|
||||
BlockStart();
|
||||
foreach (var prop in props)
|
||||
{
|
||||
if (all)
|
||||
{
|
||||
var flag = m_Flodouts.ContainsKey(prop.displayName) && m_Flodouts[prop.displayName];
|
||||
m_Flodouts[prop.displayName] = EditorGUILayout.Foldout(flag, prop.displayName, true);
|
||||
if (m_Flodouts[prop.displayName])
|
||||
{
|
||||
EditorGUI.indentLevel++;
|
||||
var currRect = EditorGUILayout.GetControlRect(GUILayout.Height(0));
|
||||
currRect.y -= EditorGUIUtility.singleLineHeight;
|
||||
var rect1 = new Rect(currRect.width + k_IconXOffset,
|
||||
currRect.y + k_IconYOffset,
|
||||
k_IconWidth, EditorGUIUtility.singleLineHeight);
|
||||
if (GUI.Button(rect1, ChartEditorHelper.Styles.iconAdd, ChartEditorHelper.Styles.invisibleButton))
|
||||
{
|
||||
prop.InsertArrayElementAtIndex(prop.arraySize > 0 ? prop.arraySize - 1 : 0);
|
||||
var chart = prop.GetArrayElementAtIndex(0).serializedObject.targetObject as BaseChart;
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
chart.RemoveChartObject();
|
||||
chart.RefreshAllComponent();
|
||||
}
|
||||
for (int i = 0; i < prop.arraySize; i++)
|
||||
{
|
||||
EditorGUILayout.PropertyField(prop.GetArrayElementAtIndex(i), true);
|
||||
currRect = EditorGUILayout.GetControlRect(GUILayout.Height(0));
|
||||
currRect.y -= EditorGUI.GetPropertyHeight(prop.GetArrayElementAtIndex(i));
|
||||
rect1 = new Rect(currRect.width + k_IconXOffset,
|
||||
currRect.y + k_IconYOffset,
|
||||
k_IconWidth, EditorGUIUtility.singleLineHeight);
|
||||
var oldColor = GUI.contentColor;
|
||||
GUI.contentColor = Color.black;
|
||||
if (GUI.Button(rect1, ChartEditorHelper.Styles.iconRemove, ChartEditorHelper.Styles.invisibleButton))
|
||||
{
|
||||
if (prop.arraySize == 1)
|
||||
{
|
||||
if (EditorUtility.DisplayDialog("Delete component", "Confirm to delete last component?", "Sure", "Cancel"))
|
||||
{
|
||||
var chart = prop.GetArrayElementAtIndex(0).serializedObject.targetObject as BaseChart;
|
||||
prop.DeleteArrayElementAtIndex(i);
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
chart.RemoveChartObject();
|
||||
chart.RefreshAllComponent();
|
||||
}
|
||||
}
|
||||
else if (i < prop.arraySize && i >= 0)
|
||||
{
|
||||
var chart = prop.GetArrayElementAtIndex(0).serializedObject.targetObject as BaseChart;
|
||||
prop.DeleteArrayElementAtIndex(i);
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
chart.RemoveChartObject();
|
||||
chart.RefreshAllComponent();
|
||||
}
|
||||
}
|
||||
var rect2 = new Rect(currRect.width + k_IconXOffset - k_IconWidth - k_IconGap,
|
||||
currRect.y + k_IconYOffset,
|
||||
k_IconWidth, EditorGUIUtility.singleLineHeight);
|
||||
if (GUI.Button(rect2, ChartEditorHelper.Styles.iconDown, ChartEditorHelper.Styles.invisibleButton))
|
||||
{
|
||||
if (i < prop.arraySize - 1) prop.MoveArrayElement(i, i + 1);
|
||||
}
|
||||
var rect3 = new Rect(currRect.width + k_IconXOffset - 2 * (k_IconWidth + k_IconGap),
|
||||
currRect.y + k_IconYOffset,
|
||||
k_IconWidth, EditorGUIUtility.singleLineHeight);
|
||||
if (GUI.Button(rect3, ChartEditorHelper.Styles.iconUp, ChartEditorHelper.Styles.invisibleButton))
|
||||
{
|
||||
if (i > 0) prop.MoveArrayElement(i, i - 1);
|
||||
}
|
||||
GUI.contentColor = oldColor;
|
||||
}
|
||||
EditorGUI.indentLevel--;
|
||||
}
|
||||
}
|
||||
else if (prop.arraySize > 0) EditorGUILayout.PropertyField(prop.GetArrayElementAtIndex(0), true);
|
||||
}
|
||||
BlockEnd();
|
||||
}
|
||||
|
||||
protected void BlockListField(bool all, SerieType serieType, params SerializedProperty[] props)
|
||||
{
|
||||
if (!m_Chart.ContainsSerie(serieType)) return;
|
||||
BlockListField(all, props);
|
||||
}
|
||||
|
||||
private void CheckWarning()
|
||||
{
|
||||
if (GUILayout.Button("Check XCharts Update "))
|
||||
if (GUILayout.Button("Remove All Chart Object"))
|
||||
{
|
||||
CheckVersionEditor.ShowWindow();
|
||||
m_Chart.RemoveChartObject();
|
||||
}
|
||||
// if (GUILayout.Button("Check XCharts Update"))
|
||||
// {
|
||||
// CheckVersionEditor.ShowWindow();
|
||||
// }
|
||||
if (m_CheckWarning)
|
||||
{
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
if (GUILayout.Button("Check Warning"))
|
||||
{
|
||||
m_CheckWarning = true;
|
||||
m_Target.CheckWarning();
|
||||
m_Chart.CheckWarning();
|
||||
}
|
||||
if (GUILayout.Button("Hide Warning"))
|
||||
{
|
||||
@@ -134,11 +308,11 @@ namespace XCharts
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
sb.Length = 0;
|
||||
sb.AppendFormat("version:{0}", XChartsMgr.Instance.nowVersion);
|
||||
if (!string.IsNullOrEmpty(m_Target.warningInfo))
|
||||
sb.AppendFormat("v{0}", XChartsMgr.fullVersion);
|
||||
if (!string.IsNullOrEmpty(m_Chart.warningInfo))
|
||||
{
|
||||
sb.AppendLine();
|
||||
sb.Append(m_Target.warningInfo);
|
||||
sb.Append(m_Chart.warningInfo);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -152,11 +326,10 @@ namespace XCharts
|
||||
if (GUILayout.Button("Check warning"))
|
||||
{
|
||||
m_CheckWarning = true;
|
||||
m_Target.CheckWarning();
|
||||
m_Chart.CheckWarning();
|
||||
}
|
||||
}
|
||||
EditorGUILayout.Space();
|
||||
EditorGUILayout.Space();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d7f1cff1e5bae244a872040086b1cfa8
|
||||
timeCreated: 1554217495
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
25
Assets/XCharts/Editor/CandlestickChartEditor.cs
Normal file
25
Assets/XCharts/Editor/CandlestickChartEditor.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
/// <summary>
|
||||
/// Editor class used to edit UI CandlestickChart.
|
||||
/// </summary>
|
||||
[CustomEditor(typeof(CandlestickChart), false)]
|
||||
public class CandlestickChartEditor : CoordinateChartEditor
|
||||
{
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
if(target == null) return;
|
||||
m_Chart = (CandlestickChart)target;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 866eefe266c3c47809d9dff3e89be0ab
|
||||
guid: 1bc2ab7ace40d480e839052673b65a5d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
@@ -13,56 +13,42 @@ namespace XCharts
|
||||
/// <summary>
|
||||
/// Editor class used to edit UI CoordinateChart.
|
||||
/// </summary>
|
||||
|
||||
[CustomEditor(typeof(CoordinateChart), false)]
|
||||
public class CoordinateChartEditor : BaseChartEditor
|
||||
{
|
||||
protected SerializedProperty m_Grid;
|
||||
protected SerializedProperty m_Grids;
|
||||
protected SerializedProperty m_MultipleXAxis;
|
||||
protected SerializedProperty m_XAxises;
|
||||
protected SerializedProperty m_XAxes;
|
||||
protected SerializedProperty m_MultipleYAxis;
|
||||
protected SerializedProperty m_YAxises;
|
||||
protected SerializedProperty m_DataZoom;
|
||||
protected SerializedProperty m_VisualMap;
|
||||
protected SerializedProperty m_YAxes;
|
||||
protected SerializedProperty m_DataZooms;
|
||||
protected SerializedProperty m_VisualMaps;
|
||||
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
m_Target = (CoordinateChart)target;
|
||||
m_Grid = serializedObject.FindProperty("m_Grid");
|
||||
m_XAxises = serializedObject.FindProperty("m_XAxises");
|
||||
m_YAxises = serializedObject.FindProperty("m_YAxises");
|
||||
m_DataZoom = serializedObject.FindProperty("m_DataZoom");
|
||||
m_VisualMap = serializedObject.FindProperty("m_VisualMap");
|
||||
if(target == null) return;
|
||||
m_Chart = (CoordinateChart)target;
|
||||
m_Grids = serializedObject.FindProperty("m_Grids");
|
||||
m_XAxes = serializedObject.FindProperty("m_XAxes");
|
||||
m_YAxes = serializedObject.FindProperty("m_YAxes");
|
||||
m_DataZooms = serializedObject.FindProperty("m_DataZooms");
|
||||
m_VisualMaps = serializedObject.FindProperty("m_VisualMaps");
|
||||
}
|
||||
|
||||
protected override void OnStartInspectorGUI()
|
||||
{
|
||||
base.OnStartInspectorGUI();
|
||||
if (m_Target is LineChart || m_Target is BarChart)
|
||||
{
|
||||
EditorGUILayout.PropertyField(m_DataZoom);
|
||||
}
|
||||
if (m_Target is HeatmapChart)
|
||||
{
|
||||
EditorGUILayout.PropertyField(m_VisualMap);
|
||||
}
|
||||
EditorGUILayout.PropertyField(m_Grid);
|
||||
for (int i = 0; i < m_XAxises.arraySize; i++)
|
||||
{
|
||||
SerializedProperty axis = m_XAxises.GetArrayElementAtIndex(i);
|
||||
EditorGUILayout.PropertyField(axis);
|
||||
}
|
||||
for (int i = 0; i < m_YAxises.arraySize; i++)
|
||||
{
|
||||
SerializedProperty axis = m_YAxises.GetArrayElementAtIndex(i);
|
||||
EditorGUILayout.PropertyField(axis);
|
||||
}
|
||||
BlockListField(m_ShowAllComponent, m_DataZooms);
|
||||
BlockListField(m_ShowAllComponent, m_VisualMaps);
|
||||
BlockListField(m_ShowAllComponent, m_Grids);
|
||||
BlockListField(m_ShowAllComponent, m_XAxes);
|
||||
BlockListField(m_ShowAllComponent, m_YAxes);
|
||||
}
|
||||
|
||||
protected override void OnEndInspectorGUI()
|
||||
protected override void MoreDebugInspector()
|
||||
{
|
||||
base.OnEndInspectorGUI();
|
||||
base.MoreDebugInspector();
|
||||
CovertXYAxis();
|
||||
}
|
||||
|
||||
@@ -70,7 +56,7 @@ namespace XCharts
|
||||
{
|
||||
if (GUILayout.Button("Covert XY Axis"))
|
||||
{
|
||||
(m_Target as CoordinateChart).CovertXYAxis(0);
|
||||
(m_Chart as CoordinateChart).CovertXYAxis(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1dd7acd8b13f3f14e9891af4e8dd0b0b
|
||||
timeCreated: 1554475249
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
|
||||
@@ -12,22 +12,14 @@ namespace XCharts
|
||||
/// <summary>
|
||||
/// Editor class used to edit UI GaugeChart.
|
||||
/// </summary>
|
||||
|
||||
[CustomEditor(typeof(GaugeChart), false)]
|
||||
public class GaugeChartEditor : BaseChartEditor
|
||||
{
|
||||
protected SerializedProperty m_Radar;
|
||||
protected SerializedProperty m_Radars;
|
||||
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
m_Target = (GaugeChart)target;
|
||||
}
|
||||
|
||||
protected override void OnEndInspectorGUI()
|
||||
{
|
||||
base.OnEndInspectorGUI();
|
||||
if(target == null) return;
|
||||
m_Chart = (GaugeChart)target;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
|
||||
@@ -12,19 +12,14 @@ namespace XCharts
|
||||
/// <summary>
|
||||
/// Editor class used to edit UI HeatmapChart.
|
||||
/// </summary>
|
||||
|
||||
[CustomEditor(typeof(HeatmapChart), false)]
|
||||
public class HeatmapChartEditor : CoordinateChartEditor
|
||||
{
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
m_Target = (HeatmapChart)target;
|
||||
}
|
||||
|
||||
protected override void OnEndInspectorGUI()
|
||||
{
|
||||
base.OnEndInspectorGUI();
|
||||
if(target == null) return;
|
||||
m_Chart = (HeatmapChart)target;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
|
||||
@@ -12,14 +12,14 @@ namespace XCharts
|
||||
/// <summary>
|
||||
/// Editor class used to edit UI LineChart.
|
||||
/// </summary>
|
||||
|
||||
[CustomEditor(typeof(LineChart), false)]
|
||||
public class LineChartEditor : CoordinateChartEditor
|
||||
{
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
m_Target = (LineChart)target;
|
||||
if(target == null) return;
|
||||
m_Chart = (LineChart)target;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6bd1a238bc5b407408b8f902aa3db9fd
|
||||
timeCreated: 1554539035
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -5,13 +5,16 @@
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEditor;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
/// <summary>
|
||||
/// 从json导入数据接口
|
||||
/// Editor class used to edit UI LiquidChart.
|
||||
/// </summary>
|
||||
public interface IJsonData
|
||||
|
||||
[CustomEditor(typeof(LiquidChart), false)]
|
||||
public class LiquidChartEditor : BaseChartEditor
|
||||
{
|
||||
void ParseJsonData(string json);
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 93f4873273d9c4d76bd651c8d774637f
|
||||
guid: 307a1578a6be1403c98fdc27d99d1808
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
|
||||
@@ -12,21 +12,14 @@ namespace XCharts
|
||||
/// <summary>
|
||||
/// Editor class used to edit UI PieChart.
|
||||
/// </summary>
|
||||
|
||||
[CustomEditor(typeof(PieChart), false)]
|
||||
public class PieChartEditor : BaseChartEditor
|
||||
{
|
||||
protected SerializedProperty m_Pie;
|
||||
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
m_Target = (PieChart)target;
|
||||
}
|
||||
|
||||
protected override void OnEndInspectorGUI()
|
||||
{
|
||||
base.OnEndInspectorGUI();
|
||||
if(target == null) return;
|
||||
m_Chart = (PieChart)target;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 28de30021bed0f945af09633584fcb44
|
||||
timeCreated: 1554768152
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
41
Assets/XCharts/Editor/PolarChartEditor.cs
Normal file
41
Assets/XCharts/Editor/PolarChartEditor.cs
Normal file
@@ -0,0 +1,41 @@
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
/// <summary>
|
||||
/// Editor class used to edit UI PolarChart.
|
||||
/// </summary>
|
||||
[CustomEditor(typeof(PolarChart), false)]
|
||||
public class PolarChartEditor : BaseChartEditor
|
||||
{
|
||||
protected SerializedProperty m_Polars;
|
||||
protected SerializedProperty m_RadiusAxes;
|
||||
protected SerializedProperty m_AngleAxes;
|
||||
|
||||
protected override void OnEnable()
|
||||
{
|
||||
base.OnEnable();
|
||||
if(target == null) return;
|
||||
m_Chart = (PolarChart)target;
|
||||
m_Polars = serializedObject.FindProperty("m_Polars");
|
||||
m_RadiusAxes = serializedObject.FindProperty("m_RadiusAxes");
|
||||
m_AngleAxes = serializedObject.FindProperty("m_AngleAxes");
|
||||
}
|
||||
|
||||
protected override void OnStartInspectorGUI()
|
||||
{
|
||||
base.OnStartInspectorGUI();
|
||||
var showAll = m_MultiComponentMode.boolValue;
|
||||
BlockListField(showAll, m_Polars);
|
||||
BlockListField(showAll, m_RadiusAxes);
|
||||
BlockListField(showAll, m_AngleAxes);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 88f38952bcbcd448dbe12f98e9c9110d
|
||||
guid: 157ef5f1d75e04aa1814e0b188591912
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@@ -1,8 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0ad1e8940e4805b49a18ea7a2cbd4bce
|
||||
folderAsset: yes
|
||||
timeCreated: 1554304641
|
||||
licenseType: Free
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
@@ -12,72 +12,24 @@ using UnityEngine;
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(SerieAnimation), true)]
|
||||
public class AnimationDrawer : PropertyDrawer
|
||||
public class AnimationDrawer : BasePropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_AnimationModuleToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override string ClassName { get { return "Animation"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
|
||||
SerializedProperty m_Enable = prop.FindPropertyRelative("m_Enable");
|
||||
//SerializedProperty m_Easting = prop.FindPropertyRelative("m_Easting");
|
||||
SerializedProperty m_FadeInDuration = prop.FindPropertyRelative("m_FadeInDuration");
|
||||
SerializedProperty m_FadeOutDuration = prop.FindPropertyRelative("m_FadeOutDuration");
|
||||
SerializedProperty m_DataChangeEnable = prop.FindPropertyRelative("m_DataChangeEnable");
|
||||
SerializedProperty m_DataChangeDuration = prop.FindPropertyRelative("m_DataChangeDuration");
|
||||
SerializedProperty m_FadeInDelay = prop.FindPropertyRelative("m_FadeInDelay");
|
||||
//SerializedProperty m_Threshold = prop.FindPropertyRelative("m_Threshold");
|
||||
SerializedProperty m_ActualDuration = prop.FindPropertyRelative("m_ActualDuration");
|
||||
SerializedProperty m_FadeOutDelay = prop.FindPropertyRelative("m_FadeOutDelay");
|
||||
// SerializedProperty m_CurrDetailProgress = prop.FindPropertyRelative("m_CurrDetailProgress");
|
||||
// SerializedProperty m_DestDetailProgress = prop.FindPropertyRelative("m_DestDetailProgress");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_AnimationModuleToggle, prop, null, m_Enable, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_AnimationModuleToggle, prop))
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Enable"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
//EditorGUI.PropertyField(drawRect, m_Easting);
|
||||
//drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// EditorGUI.PropertyField(drawRect, m_Threshold);
|
||||
// if (m_Threshold.intValue < 0) m_Threshold.intValue = 0;
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FadeInDelay);
|
||||
if (m_FadeInDelay.floatValue < 0) m_FadeInDelay.floatValue = 0;
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FadeInDuration);
|
||||
if (m_FadeInDuration.floatValue < 0) m_FadeInDuration.floatValue = 0;
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FadeOutDelay);
|
||||
if (m_FadeOutDelay.floatValue < 0) m_FadeOutDelay.floatValue = 0;
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FadeOutDuration);
|
||||
if (m_FadeOutDuration.floatValue < 0) m_FadeOutDuration.floatValue = 0;
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_DataChangeEnable);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_DataChangeDuration);
|
||||
if (m_DataChangeDuration.floatValue < 0) m_DataChangeDuration.floatValue = 0;
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
// EditorGUI.LabelField(drawRect, "CurrDetailProgress:" + m_CurrDetailProgress.floatValue);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// EditorGUI.LabelField(drawRect, "DestDetailProgress:" + m_DestDetailProgress.floatValue);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.LabelField(drawRect, "Actual duration:" + m_ActualDuration.floatValue + " ms");
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
PropertyField(prop, "m_FadeInDuration");
|
||||
PropertyField(prop, "m_FadeInDelay");
|
||||
PropertyField(prop, "m_FadeOutDuration");
|
||||
PropertyField(prop, "m_FadeOutDelay");
|
||||
PropertyField(prop, "m_DataChangeEnable");
|
||||
PropertyField(prop, "m_DataChangeDuration");
|
||||
PropertyField(prop, "m_ActualDuration");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
if (ChartEditorHelper.IsToggle(m_AnimationModuleToggle, prop))
|
||||
return 8 * EditorGUIUtility.singleLineHeight + 7 * EditorGUIUtility.standardVerticalSpacing;
|
||||
else
|
||||
return 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,69 +1,34 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(AreaStyle), true)]
|
||||
public class AreaStyleDrawer : PropertyDrawer
|
||||
public class AreaStyleDrawer : BasePropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_AreaStyleToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override string ClassName { get { return "AreaStyle"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Origin = prop.FindPropertyRelative("m_Origin");
|
||||
SerializedProperty m_Color = prop.FindPropertyRelative("m_Color");
|
||||
SerializedProperty m_ToColor = prop.FindPropertyRelative("m_ToColor");
|
||||
SerializedProperty m_HighlightColor = prop.FindPropertyRelative("m_HighlightColor");
|
||||
SerializedProperty m_HighlightToColor = prop.FindPropertyRelative("m_HighlightToColor");
|
||||
SerializedProperty m_Opacity = prop.FindPropertyRelative("m_Opacity");
|
||||
SerializedProperty m_TooltipHighlight = prop.FindPropertyRelative("m_TooltipHighlight");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_AreaStyleToggle, prop, "Area Style", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_AreaStyleToggle, prop))
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Origin);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Color);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ToColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_HighlightColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_HighlightToColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Opacity);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_TooltipHighlight);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
PropertyField(prop, "m_Origin");
|
||||
PropertyField(prop, "m_Color");
|
||||
PropertyField(prop, "m_ToColor");
|
||||
PropertyField(prop, "m_HighlightColor");
|
||||
PropertyField(prop, "m_HighlightToColor");
|
||||
PropertyField(prop, "m_Opacity");
|
||||
PropertyField(prop, "m_TooltipHighlight");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_AreaStyleToggle, prop))
|
||||
{
|
||||
height += 8 * EditorGUIUtility.singleLineHeight + 7 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
else
|
||||
{
|
||||
height += 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,78 +1,50 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(Axis), true)]
|
||||
public class AxisDrawer : PropertyDrawer
|
||||
public class AxisDrawer : BasePropertyDrawer
|
||||
{
|
||||
private List<bool> m_AxisModuleToggle = new List<bool>();
|
||||
private List<bool> m_DataFoldout = new List<bool>();
|
||||
private int m_DataSize = 0;
|
||||
private bool m_ShowJsonDataArea = false;
|
||||
private string m_JsonDataAreaText;
|
||||
|
||||
|
||||
protected virtual string GetDisplayName(string displayName)
|
||||
{
|
||||
return displayName;
|
||||
}
|
||||
public override string ClassName { get { return "Axis"; } }
|
||||
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
|
||||
SerializedProperty m_Show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Type = prop.FindPropertyRelative("m_Type");
|
||||
SerializedProperty m_LogBaseE = prop.FindPropertyRelative("m_LogBaseE");
|
||||
SerializedProperty m_LogBase = prop.FindPropertyRelative("m_LogBase");
|
||||
SerializedProperty m_SplitNumber = prop.FindPropertyRelative("m_SplitNumber");
|
||||
SerializedProperty m_Interval = prop.FindPropertyRelative("m_Interval");
|
||||
SerializedProperty m_AxisLabel = prop.FindPropertyRelative("m_AxisLabel");
|
||||
SerializedProperty m_BoundaryGap = prop.FindPropertyRelative("m_BoundaryGap");
|
||||
SerializedProperty m_Data = prop.FindPropertyRelative("m_Data");
|
||||
SerializedProperty m_AxisLine = prop.FindPropertyRelative("m_AxisLine");
|
||||
SerializedProperty m_AxisName = prop.FindPropertyRelative("m_AxisName");
|
||||
SerializedProperty m_AxisTick = prop.FindPropertyRelative("m_AxisTick");
|
||||
SerializedProperty m_SplitArea = prop.FindPropertyRelative("m_SplitArea");
|
||||
SerializedProperty m_SplitLine = prop.FindPropertyRelative("m_SplitLine");
|
||||
SerializedProperty m_MinMaxType = prop.FindPropertyRelative("m_MinMaxType");
|
||||
SerializedProperty m_Min = prop.FindPropertyRelative("m_Min");
|
||||
SerializedProperty m_Max = prop.FindPropertyRelative("m_Max");
|
||||
SerializedProperty m_CeilRate = prop.FindPropertyRelative("m_CeilRate");
|
||||
SerializedProperty m_Inverse = prop.FindPropertyRelative("m_Inverse");
|
||||
|
||||
int index = InitToggle(prop);
|
||||
bool toggle = m_AxisModuleToggle[index];
|
||||
m_AxisModuleToggle[index] = ChartEditorHelper.MakeFoldout(ref drawRect, ref toggle,
|
||||
GetDisplayName(prop.displayName), m_Show);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_AxisModuleToggle[index])
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
SerializedProperty m_Type = prop.FindPropertyRelative("m_Type");
|
||||
SerializedProperty m_LogBase = prop.FindPropertyRelative("m_LogBase");
|
||||
SerializedProperty m_MinMaxType = prop.FindPropertyRelative("m_MinMaxType");
|
||||
Axis.AxisType type = (Axis.AxisType)m_Type.enumValueIndex;
|
||||
var chart = prop.serializedObject.targetObject as BaseChart;
|
||||
var isPolar = chart is PolarChart;
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUI.PropertyField(drawRect, m_Type);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
PropertyField(prop, isPolar ? "m_PolarIndex" : "m_GridIndex");
|
||||
PropertyField(prop, "m_Type");
|
||||
PropertyField(prop, "m_Position");
|
||||
PropertyField(prop, "m_Offset");
|
||||
if (type == Axis.AxisType.Log)
|
||||
{
|
||||
EditorGUI.PropertyField(drawRect, m_LogBaseE);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_LogBase);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
PropertyField(prop, "m_LogBaseE");
|
||||
EditorGUI.BeginChangeCheck();
|
||||
PropertyField(prop, "m_LogBase");
|
||||
if (m_LogBase.floatValue <= 0 || m_LogBase.floatValue == 1)
|
||||
{
|
||||
m_LogBase.floatValue = 10;
|
||||
}
|
||||
EditorGUI.EndChangeCheck();
|
||||
}
|
||||
if (type == Axis.AxisType.Value)
|
||||
if (type == Axis.AxisType.Value || type == Axis.AxisType.Time)
|
||||
{
|
||||
EditorGUI.PropertyField(drawRect, m_MinMaxType);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
PropertyField(prop, "m_MinMaxType");
|
||||
Axis.AxisMinMaxType minMaxType = (Axis.AxisMinMaxType)m_MinMaxType.enumValueIndex;
|
||||
switch (minMaxType)
|
||||
{
|
||||
@@ -82,136 +54,133 @@ namespace XCharts
|
||||
break;
|
||||
case Axis.AxisMinMaxType.Custom:
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUI.PropertyField(drawRect, m_Min);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Max);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
PropertyField(prop, "m_Min");
|
||||
PropertyField(prop, "m_Max");
|
||||
EditorGUI.indentLevel--;
|
||||
break;
|
||||
}
|
||||
EditorGUI.PropertyField(drawRect, m_CeilRate);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Inverse);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
PropertyField(prop, "m_CeilRate");
|
||||
if (type == Axis.AxisType.Value)
|
||||
{
|
||||
PropertyField(prop, "m_Inverse");
|
||||
}
|
||||
}
|
||||
EditorGUI.PropertyField(drawRect, m_SplitNumber);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Interval);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BoundaryGap);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_AxisLine);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_AxisLine);
|
||||
EditorGUI.PropertyField(drawRect, m_AxisName);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_AxisName);
|
||||
EditorGUI.PropertyField(drawRect, m_AxisTick);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_AxisTick);
|
||||
EditorGUI.PropertyField(drawRect, m_AxisLabel);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_AxisLabel);
|
||||
EditorGUI.PropertyField(drawRect, m_SplitLine);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_SplitLine);
|
||||
EditorGUI.PropertyField(drawRect, m_SplitArea);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_SplitArea);
|
||||
|
||||
PropertyField(prop, "m_SplitNumber");
|
||||
if (type == Axis.AxisType.Category)
|
||||
{
|
||||
drawRect.width = EditorGUIUtility.labelWidth + 10;
|
||||
m_DataFoldout[index] = EditorGUI.Foldout(drawRect, m_DataFoldout[index], "Data");
|
||||
ChartEditorHelper.MakeJsonData(ref drawRect, ref m_ShowJsonDataArea, ref m_JsonDataAreaText, prop, pos.width);
|
||||
drawRect.width = pos.width;
|
||||
if (m_DataFoldout[index])
|
||||
{
|
||||
ChartEditorHelper.MakeList(ref drawRect, ref m_DataSize, m_Data);
|
||||
}
|
||||
PropertyField(prop, "m_InsertDataToHead");
|
||||
PropertyField(prop, "m_MaxCache");
|
||||
PropertyField(prop, "m_BoundaryGap");
|
||||
}
|
||||
else
|
||||
{
|
||||
PropertyField(prop, "m_Interval");
|
||||
}
|
||||
DrawExtendeds(prop);
|
||||
PropertyField(prop, "m_AxisLine");
|
||||
PropertyField(prop, "m_AxisName");
|
||||
PropertyField(prop, "m_AxisTick");
|
||||
PropertyField(prop, "m_AxisLabel");
|
||||
PropertyField(prop, "m_SplitLine");
|
||||
PropertyField(prop, "m_SplitArea");
|
||||
PropertyField(prop, "m_IconStyle");
|
||||
PropertyListField(prop, "m_Icons", true);
|
||||
if (type == Axis.AxisType.Category)
|
||||
{
|
||||
PropertyListField(prop, "m_Data", true);
|
||||
}
|
||||
EditorGUI.indentLevel--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
[CustomPropertyDrawer(typeof(XAxis), true)]
|
||||
public class XAxisDrawer : AxisDrawer
|
||||
{
|
||||
public override string ClassName { get { return "XAxis"; } }
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(YAxis), true)]
|
||||
public class YAxisDrawer : AxisDrawer
|
||||
{
|
||||
public override string ClassName { get { return "YAxis"; } }
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(AngleAxis), true)]
|
||||
public class AngleAxisDrawer : AxisDrawer
|
||||
{
|
||||
public override string ClassName { get { return "AngleAxis"; } }
|
||||
protected override void DrawExtendeds(SerializedProperty prop)
|
||||
{
|
||||
int index = InitToggle(prop);
|
||||
if (!m_AxisModuleToggle[index])
|
||||
base.DrawExtendeds(prop);
|
||||
PropertyField(prop, "m_StartAngle");
|
||||
PropertyField(prop, "m_Clockwise");
|
||||
}
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(RadiusAxis), true)]
|
||||
public class RadiusAxisDrawer : AxisDrawer
|
||||
{
|
||||
public override string ClassName { get { return "RadiusAxis"; } }
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(AxisLabel), true)]
|
||||
public class AxisLabelDrawer : BasePropertyDrawer
|
||||
{
|
||||
public override string ClassName { get { return "AxisLabel"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
return EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
else
|
||||
{
|
||||
SerializedProperty m_Type = prop.FindPropertyRelative("m_Type");
|
||||
SerializedProperty m_AxisTick = prop.FindPropertyRelative("m_AxisTick");
|
||||
SerializedProperty m_AxisLine = prop.FindPropertyRelative("m_AxisLine");
|
||||
SerializedProperty m_AxisName = prop.FindPropertyRelative("m_AxisName");
|
||||
SerializedProperty m_AxisLabel = prop.FindPropertyRelative("m_AxisLabel");
|
||||
SerializedProperty m_SplitArea = prop.FindPropertyRelative("m_SplitArea");
|
||||
SerializedProperty m_SplitLine = prop.FindPropertyRelative("m_SplitLine");
|
||||
float height = 0;
|
||||
height += 10 * EditorGUIUtility.singleLineHeight + 9 * EditorGUIUtility.standardVerticalSpacing;
|
||||
Axis.AxisType type = (Axis.AxisType)m_Type.enumValueIndex;
|
||||
if (type == Axis.AxisType.Category)
|
||||
{
|
||||
if (m_DataFoldout[index])
|
||||
{
|
||||
SerializedProperty m_Data = prop.FindPropertyRelative("m_Data");
|
||||
int num = m_Data.arraySize + 2;
|
||||
if (num > 30) num = 14;
|
||||
height += num * EditorGUIUtility.singleLineHeight + (num - 1) * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
else
|
||||
{
|
||||
height += 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
if (m_ShowJsonDataArea)
|
||||
{
|
||||
height += EditorGUIUtility.singleLineHeight * 3 + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
else if (type == Axis.AxisType.Value)
|
||||
{
|
||||
height += 3 * EditorGUIUtility.singleLineHeight + 2 * EditorGUIUtility.standardVerticalSpacing;
|
||||
SerializedProperty m_MinMaxType = prop.FindPropertyRelative("m_MinMaxType");
|
||||
if (m_MinMaxType.enumValueIndex == (int)Axis.AxisMinMaxType.Custom)
|
||||
{
|
||||
height += EditorGUIUtility.singleLineHeight * 2 + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
else if (type == Axis.AxisType.Log)
|
||||
{
|
||||
height += 2 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
SerializedProperty m_MinMaxType = prop.FindPropertyRelative("m_MinMaxType");
|
||||
if (m_MinMaxType.enumValueIndex == (int)Axis.AxisMinMaxType.Custom)
|
||||
{
|
||||
height += EditorGUIUtility.singleLineHeight * 2 + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
height += EditorGUI.GetPropertyHeight(m_AxisName);
|
||||
height += EditorGUI.GetPropertyHeight(m_AxisLine);
|
||||
height += EditorGUI.GetPropertyHeight(m_AxisTick);
|
||||
height += EditorGUI.GetPropertyHeight(m_AxisLabel);
|
||||
height += EditorGUI.GetPropertyHeight(m_SplitArea);
|
||||
height += EditorGUI.GetPropertyHeight(m_SplitLine);
|
||||
return height;
|
||||
++EditorGUI.indentLevel;
|
||||
PropertyField(prop, "m_Inside");
|
||||
PropertyField(prop, "m_Interval");
|
||||
PropertyField(prop, "m_Margin");
|
||||
PropertyField(prop, "m_Width");
|
||||
PropertyField(prop, "m_Height");
|
||||
PropertyField(prop, "m_Formatter");
|
||||
PropertyField(prop, "m_NumericFormatter");
|
||||
PropertyField(prop, "m_ShowAsPositiveNumber");
|
||||
PropertyField(prop, "m_OnZero");
|
||||
PropertyField(prop, "m_TextLimit");
|
||||
PropertyField(prop, "m_TextStyle");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private int InitToggle(SerializedProperty prop)
|
||||
[CustomPropertyDrawer(typeof(AxisName), true)]
|
||||
public class AxisNameDrawer : BasePropertyDrawer
|
||||
{
|
||||
public override string ClassName { get { return "AxisName"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
int index = 0;
|
||||
int.TryParse(prop.displayName.Split(' ')[1], out index);
|
||||
if (index >= m_DataFoldout.Count)
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
m_DataFoldout.Add(false);
|
||||
++EditorGUI.indentLevel;
|
||||
PropertyField(prop, "m_Name");
|
||||
PropertyField(prop, "m_Location");
|
||||
PropertyField(prop, "m_TextStyle");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
if (index >= m_AxisModuleToggle.Count)
|
||||
}
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(AxisSplitArea), true)]
|
||||
public class AxisSplitAreaDrawer : BasePropertyDrawer
|
||||
{
|
||||
public override string ClassName { get { return "SplitArea"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
m_AxisModuleToggle.Add(false);
|
||||
++EditorGUI.indentLevel;
|
||||
PropertyField(prop, "m_Color");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
return index;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d0544f1db7f17644bb3cbe7c85da84d5
|
||||
timeCreated: 1554507809
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(AxisLabel), true)]
|
||||
public class AxisLabelDrawer : PropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_AxisLabelToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Formatter = prop.FindPropertyRelative("m_Formatter");
|
||||
SerializedProperty m_Inside = prop.FindPropertyRelative("m_Inside");
|
||||
SerializedProperty m_Interval = prop.FindPropertyRelative("m_Interval");
|
||||
SerializedProperty m_Rotate = prop.FindPropertyRelative("m_Rotate");
|
||||
SerializedProperty m_Margin = prop.FindPropertyRelative("m_Margin");
|
||||
SerializedProperty m_Color = prop.FindPropertyRelative("m_Color");
|
||||
SerializedProperty m_FontSize = prop.FindPropertyRelative("m_FontSize");
|
||||
SerializedProperty m_FontStyle = prop.FindPropertyRelative("m_FontStyle");
|
||||
SerializedProperty m_NumericFormatter = prop.FindPropertyRelative("m_NumericFormatter");
|
||||
SerializedProperty m_ShowAsPositiveNumber = prop.FindPropertyRelative("m_ShowAsPositiveNumber");
|
||||
SerializedProperty m_OnZero = prop.FindPropertyRelative("m_OnZero");
|
||||
SerializedProperty m_TextLimit = prop.FindPropertyRelative("m_TextLimit");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_AxisLabelToggle, prop, "Axis Label", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_AxisLabelToggle, prop))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_OnZero);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Inside);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Interval);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Rotate);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Margin);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Color);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FontSize);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FontStyle);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Formatter);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_NumericFormatter);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ShowAsPositiveNumber);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_TextLimit);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_TextLimit);
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_AxisLabelToggle, prop))
|
||||
{
|
||||
height += 12 * EditorGUIUtility.singleLineHeight + 11 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_TextLimit"));
|
||||
}
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(AxisLine), true)]
|
||||
public class AxisLineDrawer : PropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_AxisLineToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_OnZero = prop.FindPropertyRelative("m_OnZero");
|
||||
SerializedProperty m_Width = prop.FindPropertyRelative("m_Width");
|
||||
SerializedProperty m_Symbol = prop.FindPropertyRelative("m_Symbol");
|
||||
SerializedProperty m_SymbolWidth = prop.FindPropertyRelative("m_SymbolWidth");
|
||||
SerializedProperty m_SymbolHeight = prop.FindPropertyRelative("m_SymbolHeight");
|
||||
SerializedProperty m_SymbolOffset = prop.FindPropertyRelative("m_SymbolOffset");
|
||||
SerializedProperty m_SymbolDent = prop.FindPropertyRelative("m_SymbolDent");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_AxisLineToggle, prop, "Axis Line", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_AxisLineToggle,prop))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_OnZero);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Width);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Symbol);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_SymbolWidth);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_SymbolHeight);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_SymbolOffset);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_SymbolDent);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_AxisLineToggle,prop))
|
||||
{
|
||||
height += 7 * EditorGUIUtility.singleLineHeight + 6 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,75 +0,0 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(AxisName), true)]
|
||||
public class AxisNameDrawer : PropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_AxisNameToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Name = prop.FindPropertyRelative("m_Name");
|
||||
SerializedProperty m_Location = prop.FindPropertyRelative("m_Location");
|
||||
SerializedProperty m_Offset = prop.FindPropertyRelative("m_Offset");
|
||||
SerializedProperty m_Rotate = prop.FindPropertyRelative("m_Rotate");
|
||||
SerializedProperty m_Color = prop.FindPropertyRelative("m_Color");
|
||||
SerializedProperty m_FontSize = prop.FindPropertyRelative("m_FontSize");
|
||||
SerializedProperty m_FontStyle = prop.FindPropertyRelative("m_FontStyle");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_AxisNameToggle, prop, "Axis Name", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_AxisNameToggle, prop))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Name);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Location);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Offset);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Offset);
|
||||
// EditorGUI.LabelField(drawRect, "Offset");
|
||||
// var startX = drawRect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * 15;
|
||||
// var tempWidth = (pos.width - startX + 35) / 2;
|
||||
// var xRect = new Rect(startX, drawRect.y, tempWidth, drawRect.height);
|
||||
// var yRect = new Rect(xRect.x + tempWidth - 20, drawRect.y, tempWidth, drawRect.height);
|
||||
// var x = EditorGUI.FloatField(xRect, m_Offset.vector2Value.x);
|
||||
// var y = EditorGUI.FloatField(yRect, m_Offset.vector2Value.y);
|
||||
// m_Offset.vector2Value = new Vector2(x,y);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Rotate);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Color);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FontSize);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FontStyle);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_AxisNameToggle, prop))
|
||||
{
|
||||
height += 6 * EditorGUIUtility.singleLineHeight + 5 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Offset"));
|
||||
}
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(AxisSplitArea), true)]
|
||||
public class AxisSplitAreaDrawer : PropertyDrawer
|
||||
{
|
||||
private bool m_ColorFoldout = false;
|
||||
private int m_ColorSize = 0;
|
||||
private Dictionary<string, bool> m_SplitAreaToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Color = prop.FindPropertyRelative("m_Color");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_SplitAreaToggle, prop, "Split Area", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_SplitAreaToggle, prop))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
m_ColorFoldout = EditorGUI.Foldout(drawRect, m_ColorFoldout, "Color");
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
drawRect.width = pos.width;
|
||||
if (m_ColorFoldout)
|
||||
{
|
||||
ChartEditorHelper.MakeList(ref drawRect, ref m_ColorSize, m_Color);
|
||||
}
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_SplitAreaToggle, prop))
|
||||
{
|
||||
height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_ColorFoldout)
|
||||
{
|
||||
SerializedProperty m_Data = prop.FindPropertyRelative("m_Color");
|
||||
int num = m_Data.arraySize + 1;
|
||||
height += num * EditorGUIUtility.singleLineHeight + (num - 1) * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(AxisSplitLine), true)]
|
||||
public class AxisSplitLineDrawer : PropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_AxisSplitLineToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Interval = prop.FindPropertyRelative("m_Interval");
|
||||
SerializedProperty m_LineStyle = prop.FindPropertyRelative("m_LineStyle");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_AxisSplitLineToggle, prop, "Split Line", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_AxisSplitLineToggle, prop))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Interval);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_LineStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_LineStyle);
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_AxisSplitLineToggle, prop))
|
||||
{
|
||||
height += 2 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_LineStyle"));
|
||||
}
|
||||
else
|
||||
{
|
||||
height = EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: af473e9aba20f4f168b8f83a4db13f81
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,55 +0,0 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(AxisTick), true)]
|
||||
public class AxisTickDrawer : PropertyDrawer
|
||||
{
|
||||
private bool m_AxisTickToggle = false;
|
||||
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_AlignWithLabel = prop.FindPropertyRelative("m_AlignWithLabel");
|
||||
SerializedProperty m_Inside = prop.FindPropertyRelative("m_Inside");
|
||||
SerializedProperty m_Length = prop.FindPropertyRelative("m_Length");
|
||||
SerializedProperty m_Width = prop.FindPropertyRelative("m_Width");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_AxisTickToggle, "Axis Tick", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_AxisTickToggle)
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_AlignWithLabel);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Inside);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Length);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Width);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (m_AxisTickToggle)
|
||||
{
|
||||
height += 4 * EditorGUIUtility.singleLineHeight + 3 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7c7d45bc59dedc140b08f6e9d26ccd9d
|
||||
timeCreated: 1555890921
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
@@ -11,57 +11,21 @@ using UnityEngine;
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(Background), true)]
|
||||
public class BackgroundDrawer : PropertyDrawer
|
||||
public class BackgroundDrawer : BasePropertyDrawer
|
||||
{
|
||||
private bool m_BackgroundModuleToggle = false;
|
||||
|
||||
public override string ClassName { get { return "Background"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
|
||||
SerializedProperty m_Show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Image = prop.FindPropertyRelative("m_Image");
|
||||
SerializedProperty m_ImageType = prop.FindPropertyRelative("m_ImageType");
|
||||
// SerializedProperty m_Left = prop.FindPropertyRelative("m_Left");
|
||||
// SerializedProperty m_Right = prop.FindPropertyRelative("m_Right");
|
||||
// SerializedProperty m_Top = prop.FindPropertyRelative("m_Top");
|
||||
// SerializedProperty m_Bottom = prop.FindPropertyRelative("m_Bottom");
|
||||
SerializedProperty m_ImageColor = prop.FindPropertyRelative("m_ImageColor");
|
||||
SerializedProperty m_HideThemeBackgroundColor = prop.FindPropertyRelative("m_HideThemeBackgroundColor");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_BackgroundModuleToggle, "Background", m_Show);
|
||||
EditorGUI.LabelField(drawRect, "Background", EditorStyles.boldLabel);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_BackgroundModuleToggle)
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Image);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ImageType);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// EditorGUI.PropertyField(drawRect, m_Left);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// EditorGUI.PropertyField(drawRect, m_Right);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// EditorGUI.PropertyField(drawRect, m_Top);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// EditorGUI.PropertyField(drawRect, m_Bottom);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ImageColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_HideThemeBackgroundColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
PropertyField(prop, "m_Image");
|
||||
PropertyField(prop, "m_ImageType");
|
||||
PropertyField(prop, "m_ImageColor");
|
||||
PropertyField(prop, "m_HideThemeBackgroundColor");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
if (m_BackgroundModuleToggle)
|
||||
return 5 * EditorGUIUtility.singleLineHeight + 4 * EditorGUIUtility.standardVerticalSpacing;
|
||||
else
|
||||
return 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
}
|
||||
188
Assets/XCharts/Editor/PropertyDrawers/BasePropertyDrawer.cs
Normal file
188
Assets/XCharts/Editor/PropertyDrawers/BasePropertyDrawer.cs
Normal file
@@ -0,0 +1,188 @@
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(Settings), true)]
|
||||
public class BasePropertyDrawer : PropertyDrawer
|
||||
{
|
||||
protected int m_Index;
|
||||
protected int m_DataSize;
|
||||
protected float m_DefaultWidth;
|
||||
protected string m_DisplayName;
|
||||
protected string m_KeyName;
|
||||
protected Rect m_DrawRect;
|
||||
protected Dictionary<string, float> m_Heights = new Dictionary<string, float>();
|
||||
protected Dictionary<string, bool> m_PropToggles = new Dictionary<string, bool>();
|
||||
protected Dictionary<string, bool> m_DataToggles = new Dictionary<string, bool>();
|
||||
|
||||
public virtual string ClassName { get { return ""; } }
|
||||
public virtual List<string> IngorePropertys { get { return new List<string> { }; } }
|
||||
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
m_DrawRect = pos;
|
||||
m_DrawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
m_DefaultWidth = pos.width;
|
||||
var list = prop.displayName.Split(' ');
|
||||
if (list.Length > 0)
|
||||
{
|
||||
if (!int.TryParse(list[list.Length - 1], out m_Index))
|
||||
{
|
||||
m_Index = 0;
|
||||
m_DisplayName = prop.displayName;
|
||||
m_KeyName = prop.propertyPath + "_" + m_Index;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_DisplayName = ClassName + " " + m_Index;
|
||||
m_KeyName = prop.propertyPath + "_" + m_Index;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_DisplayName = prop.displayName;
|
||||
}
|
||||
if (!m_PropToggles.ContainsKey(m_KeyName))
|
||||
{
|
||||
m_PropToggles.Add(m_KeyName, false);
|
||||
}
|
||||
if (!m_DataToggles.ContainsKey(m_KeyName))
|
||||
{
|
||||
m_DataToggles.Add(m_KeyName, false);
|
||||
}
|
||||
if (!m_Heights.ContainsKey(m_KeyName))
|
||||
{
|
||||
m_Heights.Add(m_KeyName, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Heights[m_KeyName] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
private string GetKeyName(SerializedProperty prop)
|
||||
{
|
||||
var index = 0;
|
||||
var list = prop.displayName.Split(' ');
|
||||
if (list.Length > 0)
|
||||
{
|
||||
int.TryParse(list[list.Length - 1], out index);
|
||||
}
|
||||
return prop.propertyPath + "_" + index;
|
||||
}
|
||||
|
||||
protected void AddSingleLineHeight()
|
||||
{
|
||||
m_Heights[m_KeyName] += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
m_DrawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
|
||||
protected void AddHeight(float height)
|
||||
{
|
||||
m_Heights[m_KeyName] += height;
|
||||
m_DrawRect.y += height;
|
||||
}
|
||||
|
||||
protected void PropertyListField(SerializedProperty prop, string relativePropName, bool showOrder = true)
|
||||
{
|
||||
if (IngorePropertys.Contains(relativePropName)) return;
|
||||
var height = m_Heights[m_KeyName];
|
||||
var toggleKeyName = m_KeyName + relativePropName;
|
||||
m_DataToggles[toggleKeyName] = ChartEditorHelper.MakeListWithFoldout(ref m_DrawRect, ref height,
|
||||
prop.FindPropertyRelative(relativePropName),
|
||||
m_DataToggles.ContainsKey(toggleKeyName) && m_DataToggles[toggleKeyName], showOrder);
|
||||
m_Heights[m_KeyName] = height;
|
||||
}
|
||||
|
||||
protected void PropertyField(SerializedProperty prop, string relativePropName)
|
||||
{
|
||||
if (IngorePropertys.Contains(relativePropName)) return;
|
||||
if (!ChartEditorHelper.PropertyField(ref m_DrawRect, m_Heights, m_KeyName, prop, relativePropName))
|
||||
{
|
||||
Debug.LogError("PropertyField ERROR:" + prop.displayName + ", " + relativePropName);
|
||||
}
|
||||
}
|
||||
|
||||
protected void PropertyFieldLimitMin(SerializedProperty prop, string relativePropName, float minValue)
|
||||
{
|
||||
if (IngorePropertys.Contains(relativePropName)) return;
|
||||
if (!ChartEditorHelper.PropertyFieldWithMinValue(ref m_DrawRect, m_Heights, m_KeyName, prop,
|
||||
relativePropName, minValue))
|
||||
{
|
||||
Debug.LogError("PropertyField ERROR:" + prop.displayName + ", " + relativePropName);
|
||||
}
|
||||
}
|
||||
protected void PropertyFieldLimitMax(SerializedProperty prop, string relativePropName, float maxValue)
|
||||
{
|
||||
if (IngorePropertys.Contains(relativePropName)) return;
|
||||
if (!ChartEditorHelper.PropertyFieldWithMaxValue(ref m_DrawRect, m_Heights, m_KeyName, prop,
|
||||
relativePropName, maxValue))
|
||||
{
|
||||
Debug.LogError("PropertyField ERROR:" + prop.displayName + ", " + relativePropName);
|
||||
}
|
||||
}
|
||||
|
||||
protected void PropertyField(SerializedProperty prop, SerializedProperty relativeProp)
|
||||
{
|
||||
if (!ChartEditorHelper.PropertyField(ref m_DrawRect, m_Heights, m_KeyName, relativeProp))
|
||||
{
|
||||
Debug.LogError("PropertyField ERROR:" + prop.displayName + ", " + relativeProp);
|
||||
}
|
||||
}
|
||||
|
||||
protected void PropertyTwoFiled(SerializedProperty prop, string relativeListProp, string labelName = null)
|
||||
{
|
||||
PropertyTwoFiled(prop, prop.FindPropertyRelative(relativeListProp), labelName);
|
||||
}
|
||||
protected void PropertyTwoFiled(SerializedProperty prop, SerializedProperty relativeListProp,
|
||||
string labelName = null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(labelName))
|
||||
{
|
||||
labelName = relativeListProp.displayName;
|
||||
}
|
||||
ChartEditorHelper.MakeTwoField(ref m_DrawRect, m_DefaultWidth, relativeListProp, labelName);
|
||||
m_Heights[m_KeyName] += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
|
||||
protected bool MakeFoldout(SerializedProperty prop, string relativePropName)
|
||||
{
|
||||
if (string.IsNullOrEmpty(relativePropName))
|
||||
{
|
||||
return ChartEditorHelper.MakeFoldout(ref m_DrawRect, m_Heights, m_PropToggles, m_KeyName,
|
||||
m_DisplayName, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
var relativeProp = prop.FindPropertyRelative(relativePropName);
|
||||
return ChartEditorHelper.MakeFoldout(ref m_DrawRect, m_Heights, m_PropToggles, m_KeyName,
|
||||
m_DisplayName, relativeProp);
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void DrawExtendeds(SerializedProperty prop)
|
||||
{
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
var key = GetKeyName(prop);
|
||||
if (m_Heights.ContainsKey(key)) return m_Heights[key] + GetExtendedHeight();
|
||||
else return EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
|
||||
protected virtual float GetExtendedHeight()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 988570bd6485942da9879649ed4adb5b
|
||||
guid: 4e5a04ce1f0a841b9b966a6d74de00e4
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
190
Assets/XCharts/Editor/PropertyDrawers/ComponentThemeDrawer.cs
Normal file
190
Assets/XCharts/Editor/PropertyDrawers/ComponentThemeDrawer.cs
Normal file
@@ -0,0 +1,190 @@
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
#if dUI_TextMeshPro
|
||||
using TMPro;
|
||||
#endif
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(ComponentTheme), true)]
|
||||
public class ComponentThemeDrawer : BasePropertyDrawer
|
||||
{
|
||||
public override string ClassName { get { return ""; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, ""))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
#if dUI_TextMeshPro
|
||||
PropertyField(prop, "m_TMPFont");
|
||||
#else
|
||||
PropertyField(prop, "m_Font");
|
||||
#endif
|
||||
PropertyField(prop, "m_FontSize");
|
||||
PropertyField(prop, "m_TextColor");
|
||||
//PropertyField(prop, "m_TextBackgroundColor");
|
||||
DrawExtendeds(prop);
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(BaseAxisTheme), true)]
|
||||
public class BaseAxisThemeDrawer : ComponentThemeDrawer
|
||||
{
|
||||
public override string ClassName { get { return "Axis"; } }
|
||||
protected override void DrawExtendeds(SerializedProperty prop)
|
||||
{
|
||||
base.DrawExtendeds(prop);
|
||||
PropertyField(prop, "m_LineType");
|
||||
PropertyField(prop, "m_LineWidth");
|
||||
PropertyField(prop, "m_LineLength");
|
||||
PropertyField(prop, "m_LineColor");
|
||||
PropertyField(prop, "m_SplitLineType");
|
||||
PropertyField(prop, "m_SplitLineWidth");
|
||||
PropertyField(prop, "m_SplitLineLength");
|
||||
PropertyField(prop, "m_SplitLineColor");
|
||||
PropertyField(prop, "m_TickWidth");
|
||||
PropertyField(prop, "m_TickLength");
|
||||
PropertyField(prop, "m_TickColor");
|
||||
PropertyField(prop, "m_SplitAreaColors");
|
||||
}
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(AxisTheme), true)]
|
||||
public class AxisThemeDrawer : BaseAxisThemeDrawer
|
||||
{
|
||||
public override string ClassName { get { return "Axis"; } }
|
||||
}
|
||||
[CustomPropertyDrawer(typeof(RadiusAxisTheme), true)]
|
||||
public class RadiusAxisThemeDrawer : BaseAxisThemeDrawer
|
||||
{
|
||||
public override string ClassName { get { return "Radius Axis"; } }
|
||||
public override List<string> IngorePropertys
|
||||
{
|
||||
get
|
||||
{
|
||||
return new List<string> {
|
||||
"m_TextBackgroundColor" ,
|
||||
"m_LineLength",
|
||||
"m_SplitLineLength",
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
[CustomPropertyDrawer(typeof(GaugeAxisTheme), true)]
|
||||
public class GaugeAxisThemeDrawer : AxisThemeDrawer
|
||||
{
|
||||
public override string ClassName { get { return "Gauge Axis"; } }
|
||||
public override List<string> IngorePropertys
|
||||
{
|
||||
get
|
||||
{
|
||||
return new List<string> {
|
||||
"m_TextBackgroundColor" ,
|
||||
"m_LineLength",
|
||||
};
|
||||
}
|
||||
}
|
||||
protected override void DrawExtendeds(SerializedProperty prop)
|
||||
{
|
||||
base.DrawExtendeds(prop);
|
||||
PropertyField(prop, "m_BarBackgroundColor");
|
||||
PropertyField(prop, "m_StageColor");
|
||||
}
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(DataZoomTheme), true)]
|
||||
public class DataZoomThemeDrawer : ComponentThemeDrawer
|
||||
{
|
||||
public override string ClassName { get { return "DataZoom"; } }
|
||||
protected override void DrawExtendeds(SerializedProperty prop)
|
||||
{
|
||||
base.DrawExtendeds(prop);
|
||||
PropertyField(prop, "m_BackgroundColor");
|
||||
PropertyField(prop, "m_BorderWidth");
|
||||
PropertyField(prop, "m_BorderColor");
|
||||
PropertyField(prop, "m_DataLineWidth");
|
||||
PropertyField(prop, "m_DataLineColor");
|
||||
PropertyField(prop, "m_FillerColor");
|
||||
PropertyField(prop, "m_DataAreaColor");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(LegendTheme), true)]
|
||||
public class LegendThemeDrawer : ComponentThemeDrawer
|
||||
{
|
||||
public override string ClassName { get { return "Legend"; } }
|
||||
protected override void DrawExtendeds(SerializedProperty prop)
|
||||
{
|
||||
base.DrawExtendeds(prop);
|
||||
PropertyField(prop, "m_UnableColor");
|
||||
}
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(TooltipTheme), true)]
|
||||
public class TooltipThemeDrawer : ComponentThemeDrawer
|
||||
{
|
||||
public override string ClassName { get { return "Tooltip"; } }
|
||||
protected override void DrawExtendeds(SerializedProperty prop)
|
||||
{
|
||||
base.DrawExtendeds(prop);
|
||||
PropertyField(prop, "m_LineType");
|
||||
PropertyField(prop, "m_LineWidth");
|
||||
PropertyField(prop, "m_LineColor");
|
||||
PropertyField(prop, "m_AreaColor");
|
||||
PropertyField(prop, "m_LabelTextColor");
|
||||
PropertyField(prop, "m_LabelBackgroundColor");
|
||||
}
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(VisualMapTheme), true)]
|
||||
public class VisualMapThemeDrawer : ComponentThemeDrawer
|
||||
{
|
||||
public override string ClassName { get { return "VisualMap"; } }
|
||||
protected override void DrawExtendeds(SerializedProperty prop)
|
||||
{
|
||||
base.DrawExtendeds(prop);
|
||||
// PropertyField(prop, "m_BorderWidth");
|
||||
// PropertyField(prop, "m_BorderColor");
|
||||
// PropertyField(prop, "m_BackgroundColor");
|
||||
}
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(SerieTheme), true)]
|
||||
public class SerieThemeDrawer : BasePropertyDrawer
|
||||
{
|
||||
public override string ClassName { get { return "Serie"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, ""))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
PropertyField(prop, "m_LineWidth");
|
||||
PropertyField(prop, "m_LineSymbolSize");
|
||||
PropertyField(prop, "m_LineSymbolSelectedSize");
|
||||
PropertyField(prop, "m_ScatterSymbolSize");
|
||||
PropertyField(prop, "m_ScatterSymbolSelectedSize");
|
||||
PropertyField(prop, "m_PieTooltipExtraRadius");
|
||||
PropertyField(prop, "m_PieSelectedOffset");
|
||||
PropertyField(prop, "m_CandlestickColor");
|
||||
PropertyField(prop, "m_CandlestickColor0");
|
||||
PropertyField(prop, "m_CandlestickBorderColor");
|
||||
PropertyField(prop, "m_CandlestickBorderColor0");
|
||||
PropertyField(prop, "m_CandlestickBorderWidth");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c7937a2a7addd42299e960c5cfb75e34
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
@@ -11,96 +11,55 @@ using UnityEngine;
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(DataZoom), true)]
|
||||
public class DataZoomDrawer : PropertyDrawer
|
||||
public class DataZoomDrawer : BasePropertyDrawer
|
||||
{
|
||||
private bool m_DataZoomModuleToggle = false;
|
||||
|
||||
public override string ClassName { get { return "DataZoom"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Enable");
|
||||
//SerializedProperty m_FilterMode = prop.FindPropertyRelative("m_FilterMode");
|
||||
//SerializedProperty m_Orient = prop.FindPropertyRelative("m_Orient");
|
||||
SerializedProperty m_SupportInside = prop.FindPropertyRelative("m_SupportInside");
|
||||
SerializedProperty m_SupportSlider = prop.FindPropertyRelative("m_SupportSlider");
|
||||
//SerializedProperty m_SupportSelect = prop.FindPropertyRelative("m_SupportSelect");
|
||||
SerializedProperty m_ShowDataShadow = prop.FindPropertyRelative("m_ShowDataShadow");
|
||||
SerializedProperty m_ShowDetail = prop.FindPropertyRelative("m_ShowDetail");
|
||||
SerializedProperty m_ZoomLock = prop.FindPropertyRelative("m_ZoomLock");
|
||||
// SerializedProperty m_Realtime = prop.FindPropertyRelative("m_Realtime");
|
||||
// SerializedProperty m_BackgroundColor = prop.FindPropertyRelative("m_BackgroundColor");
|
||||
SerializedProperty m_Height = prop.FindPropertyRelative("m_Height");
|
||||
SerializedProperty m_Bottom = prop.FindPropertyRelative("m_Bottom");
|
||||
SerializedProperty m_RangeMode = prop.FindPropertyRelative("m_RangeMode");
|
||||
SerializedProperty m_Start = prop.FindPropertyRelative("m_Start");
|
||||
SerializedProperty m_End = prop.FindPropertyRelative("m_End");
|
||||
SerializedProperty m_MinShowNum = prop.FindPropertyRelative("m_MinShowNum");
|
||||
SerializedProperty m_ScrollSensitivity = prop.FindPropertyRelative("m_ScrollSensitivity");
|
||||
SerializedProperty m_FontSize = prop.FindPropertyRelative("m_FontSize");
|
||||
SerializedProperty m_FontStyle = prop.FindPropertyRelative("m_FontStyle");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_DataZoomModuleToggle, "DataZoom", show);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_DataZoomModuleToggle)
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Enable"))
|
||||
{
|
||||
var m_SupportSlider = prop.FindPropertyRelative("m_SupportSlider");
|
||||
var m_Start = prop.FindPropertyRelative("m_Start");
|
||||
var m_End = prop.FindPropertyRelative("m_End");
|
||||
var m_MinShowNum = prop.FindPropertyRelative("m_MinShowNum");
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_SupportInside);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_SupportSlider);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_SupportSlider.boolValue)
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_ShowDataShadow);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ShowDetail);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FontSize);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FontStyle);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// EditorGUI.PropertyField(drawRect, m_Realtime);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Height);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Bottom);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
//EditorGUI.PropertyField(drawRect, m_SupportSelect);
|
||||
//drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ZoomLock);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ScrollSensitivity);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_RangeMode);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Start);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_End);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_MinShowNum);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
PropertyField(prop, "m_SupportInside");
|
||||
PropertyField(prop, m_SupportSlider);
|
||||
PropertyField(prop, "m_ZoomLock");
|
||||
PropertyField(prop, "m_ScrollSensitivity");
|
||||
PropertyField(prop, "m_RangeMode");
|
||||
PropertyField(prop, m_Start);
|
||||
PropertyField(prop, m_End);
|
||||
PropertyField(prop, m_MinShowNum);
|
||||
if (m_Start.floatValue < 0) m_Start.floatValue = 0;
|
||||
if (m_End.floatValue > 100) m_End.floatValue = 100;
|
||||
if (m_MinShowNum.intValue < 0) m_MinShowNum.intValue = 0;
|
||||
if (m_SupportSlider.boolValue)
|
||||
{
|
||||
PropertyField(prop, "m_ShowDataShadow");
|
||||
PropertyField(prop, "m_ShowDetail");
|
||||
PropertyField(prop, "m_BackgroundColor");
|
||||
PropertyField(prop, "m_BorderWidth");
|
||||
PropertyField(prop, "m_BorderColor");
|
||||
PropertyField(prop, "m_FillerColor");
|
||||
PropertyField(prop, "m_Left");
|
||||
PropertyField(prop, "m_Right");
|
||||
PropertyField(prop, "m_Top");
|
||||
PropertyField(prop, "m_Bottom");
|
||||
PropertyField(prop, "m_LineStyle");
|
||||
PropertyField(prop, "m_AreaStyle");
|
||||
PropertyListField(prop, "m_XAxisIndexs", true);
|
||||
PropertyListField(prop, "m_YAxisIndexs", true);
|
||||
PropertyField(prop, "m_TextStyle");
|
||||
}
|
||||
else
|
||||
{
|
||||
PropertyListField(prop, "m_XAxisIndexs", true);
|
||||
PropertyListField(prop, "m_YAxisIndexs", true);
|
||||
}
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
int num = 1;
|
||||
if (m_DataZoomModuleToggle)
|
||||
{
|
||||
num += 8;
|
||||
if (prop.FindPropertyRelative("m_SupportSlider").boolValue) num += 6;
|
||||
|
||||
}
|
||||
height += num * EditorGUIUtility.singleLineHeight + (num - 1) * EditorGUIUtility.standardVerticalSpacing;
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cba26e421f79077499f05aaf10d06b4f
|
||||
timeCreated: 1559609801
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
@@ -12,44 +12,19 @@ using UnityEngine;
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(Emphasis), true)]
|
||||
public class EmphasisDrawer : PropertyDrawer
|
||||
public class EmphasisDrawer : BasePropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_EmphasisToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override string ClassName { get { return "Emphasis"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Label = prop.FindPropertyRelative("m_Label");
|
||||
SerializedProperty m_ItemStyle = prop.FindPropertyRelative("m_ItemStyle");
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_EmphasisToggle, prop, "Emphasis", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_EmphasisToggle, prop))
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Label);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
|
||||
EditorGUI.PropertyField(drawRect, m_ItemStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
|
||||
PropertyField(prop, "m_Label");
|
||||
PropertyField(prop, "m_ItemStyle");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_EmphasisToggle, prop))
|
||||
{
|
||||
height += 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
|
||||
}
|
||||
else
|
||||
{
|
||||
height += 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,81 +1,69 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(GaugeAxis), true)]
|
||||
public class GaugeAxisDrawer : PropertyDrawer
|
||||
public class GaugeAxisDrawer : BasePropertyDrawer
|
||||
{
|
||||
private bool m_DataFoldout = false;
|
||||
private int m_DataSize = 0;
|
||||
private Dictionary<string, bool> m_AxisLineToggle = new Dictionary<string, bool>();
|
||||
public override string ClassName { get { return "Gauge Axis"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
PropertyField(prop, "m_AxisLine");
|
||||
PropertyField(prop, "m_SplitLine");
|
||||
PropertyField(prop, "m_AxisTick");
|
||||
PropertyField(prop, "m_AxisLabel");
|
||||
PropertyField(prop, "m_AxisLabelText");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[CustomPropertyDrawer(typeof(StageColor), true)]
|
||||
public class GaugeAxisLineStageColorDrawer : BasePropertyDrawer
|
||||
{
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_AxisLine = prop.FindPropertyRelative("m_AxisLine");
|
||||
SerializedProperty m_SplitLine = prop.FindPropertyRelative("m_SplitLine");
|
||||
SerializedProperty m_AxisTick = prop.FindPropertyRelative("m_AxisTick");
|
||||
SerializedProperty m_AxisLabel = prop.FindPropertyRelative("m_AxisLabel");
|
||||
SerializedProperty m_AxisLabelText = prop.FindPropertyRelative("m_AxisLabelText");
|
||||
SerializedProperty m_Percent = prop.FindPropertyRelative("m_Percent");
|
||||
SerializedProperty m_Color = prop.FindPropertyRelative("m_Color");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_AxisLineToggle, prop, "Gauge Axis", show, false);
|
||||
ChartEditorHelper.MakeTwoField(ref drawRect, drawRect.width, m_Percent, m_Color, "Stage");
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_AxisLineToggle, prop))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_AxisLine);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_AxisLine);
|
||||
EditorGUI.PropertyField(drawRect, m_SplitLine);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_SplitLine);
|
||||
EditorGUI.PropertyField(drawRect, m_AxisTick);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_AxisTick);
|
||||
EditorGUI.PropertyField(drawRect, m_AxisLabel);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_AxisLabel);
|
||||
drawRect.width = EditorGUIUtility.labelWidth + 10;
|
||||
m_DataFoldout = EditorGUI.Foldout(drawRect, m_DataFoldout, "Axis Label Text");
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
drawRect.width = pos.width;
|
||||
if (m_DataFoldout)
|
||||
{
|
||||
ChartEditorHelper.MakeList(ref drawRect, ref m_DataSize, m_AxisLabelText);
|
||||
}
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_AxisLineToggle, prop))
|
||||
return 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(GaugePointer), true)]
|
||||
public class GaugePointerDrawer : BasePropertyDrawer
|
||||
{
|
||||
public override string ClassName { get { return "Gauge Pointer"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
height += 2 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_AxisLine"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_SplitLine"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_AxisTick"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_AxisLabel"));
|
||||
if (m_DataFoldout)
|
||||
{
|
||||
SerializedProperty m_Data = prop.FindPropertyRelative("m_AxisLabelText");
|
||||
int num = m_Data.arraySize + 1;
|
||||
height += num * EditorGUIUtility.singleLineHeight + (num - 1) * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
++EditorGUI.indentLevel;
|
||||
PropertyField(prop, "m_Width");
|
||||
PropertyField(prop, "m_Length");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(GaugeAxis.AxisLine), true)]
|
||||
public class GaugeAxisLineDrawer : PropertyDrawer
|
||||
{
|
||||
private bool m_DataFoldout = false;
|
||||
private int m_DataSize = 0;
|
||||
private Dictionary<string, bool> m_Toggle = new Dictionary<string, bool>();
|
||||
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Width = prop.FindPropertyRelative("m_Width");
|
||||
SerializedProperty m_Opacity = prop.FindPropertyRelative("m_Opacity");
|
||||
SerializedProperty m_BarBackgroundColor = prop.FindPropertyRelative("m_BarBackgroundColor");
|
||||
SerializedProperty m_BarColor = prop.FindPropertyRelative("m_BarColor");
|
||||
SerializedProperty m_StageColor = prop.FindPropertyRelative("m_StageColor");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_Toggle, prop, "Axis Line", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_Toggle, prop))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Width);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Opacity);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BarColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BarBackgroundColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
m_DataFoldout = EditorGUI.Foldout(drawRect, m_DataFoldout, "Stage Color");
|
||||
drawRect.width = pos.width;
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_DataFoldout)
|
||||
{
|
||||
ChartEditorHelper.MakeList(ref drawRect, ref m_DataSize, m_StageColor);
|
||||
}
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
if (ChartEditorHelper.IsToggle(m_Toggle, prop))
|
||||
{
|
||||
float height = 6 * EditorGUIUtility.singleLineHeight + 5 * EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_DataFoldout)
|
||||
{
|
||||
var arraySize = prop.FindPropertyRelative("m_StageColor").arraySize + 1;
|
||||
height += arraySize * EditorGUIUtility.singleLineHeight + (arraySize) * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += 2 * EditorGUIUtility.standardVerticalSpacing;
|
||||
return height;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eb7a86643ea2349c8ac2475ab81cb2f9
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,33 +0,0 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(GaugeAxis.AxisLine.StageColor), true)]
|
||||
public class GaugeAxisLineStageColorDrawer : PropertyDrawer
|
||||
{
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty m_Percent = prop.FindPropertyRelative("m_Percent");
|
||||
SerializedProperty m_Color = prop.FindPropertyRelative("m_Color");
|
||||
|
||||
ChartEditorHelper.MakeTwoField(ref drawRect, drawRect.width, m_Percent, m_Color, "Stage");
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
return 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cc7cae70713a74fb496ef686296bc46b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,54 +0,0 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(GaugeAxis.SplitLine), true)]
|
||||
public class GaugeAxisSplitDrawer : PropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_Toggle = new Dictionary<string, bool>();
|
||||
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Length = prop.FindPropertyRelative("m_Length");
|
||||
SerializedProperty m_LineStyle = prop.FindPropertyRelative("m_LineStyle");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_Toggle, prop, "Split Line", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_Toggle, prop))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Length);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_LineStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_LineStyle);
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
if (ChartEditorHelper.IsToggle(m_Toggle, prop))
|
||||
{
|
||||
float height = 2 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_LineStyle"));
|
||||
return height;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d11eb7847e5c74746a570a7c9f6b339a
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,57 +0,0 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(GaugeAxis.AxisTick), true)]
|
||||
public class GaugeAxisTickDrawer : PropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_Toggle = new Dictionary<string, bool>();
|
||||
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Length = prop.FindPropertyRelative("m_Length");
|
||||
SerializedProperty m_SplitNumber = prop.FindPropertyRelative("m_SplitNumber");
|
||||
SerializedProperty m_LineStyle = prop.FindPropertyRelative("m_LineStyle");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_Toggle, prop, "Axis Tick", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_Toggle, prop))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Length);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_SplitNumber);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_LineStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_LineStyle);
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
if (ChartEditorHelper.IsToggle(m_Toggle, prop))
|
||||
{
|
||||
float height = 3 * EditorGUIUtility.singleLineHeight + 2 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_LineStyle"));
|
||||
return height;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5f561506277b949c1b22116a3f3d3f4f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,51 +0,0 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(GaugePointer), true)]
|
||||
public class GaugePointerDrawer : PropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_Toggle = new Dictionary<string, bool>();
|
||||
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Width = prop.FindPropertyRelative("m_Width");
|
||||
SerializedProperty m_Length = prop.FindPropertyRelative("m_Length");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_Toggle, prop, "Gauge Pointer", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_Toggle, prop))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Width);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Length);
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
if (ChartEditorHelper.IsToggle(m_Toggle, prop))
|
||||
{
|
||||
return 3 * EditorGUIUtility.singleLineHeight + 2 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a3d180de37dd24cfc9bcbb46f650c902
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
@@ -11,48 +11,22 @@ using UnityEngine;
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(Grid), true)]
|
||||
public class GridDrawer : PropertyDrawer
|
||||
public class GridDrawer : BasePropertyDrawer
|
||||
{
|
||||
private bool m_GridModuleToggle = false;
|
||||
|
||||
public override string ClassName { get { return "Grid"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
|
||||
SerializedProperty m_Show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Left = prop.FindPropertyRelative("m_Left");
|
||||
SerializedProperty m_Right = prop.FindPropertyRelative("m_Right");
|
||||
SerializedProperty m_Top = prop.FindPropertyRelative("m_Top");
|
||||
SerializedProperty m_Bottom = prop.FindPropertyRelative("m_Bottom");
|
||||
SerializedProperty m_BackgroundColor = prop.FindPropertyRelative("m_BackgroundColor");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_GridModuleToggle, "Grid",m_Show);
|
||||
EditorGUI.LabelField(drawRect, "Grid", EditorStyles.boldLabel);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_GridModuleToggle)
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Left);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Right);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Top);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Bottom);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BackgroundColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
PropertyField(prop, "m_Left");
|
||||
PropertyField(prop, "m_Right");
|
||||
PropertyField(prop, "m_Top");
|
||||
PropertyField(prop, "m_Bottom");
|
||||
PropertyField(prop, "m_BackgroundColor");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
if (m_GridModuleToggle)
|
||||
return 6 * EditorGUIUtility.singleLineHeight + 5 * EditorGUIUtility.standardVerticalSpacing;
|
||||
else
|
||||
return 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
@@ -12,56 +12,23 @@ using UnityEngine;
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(IconStyle), true)]
|
||||
public class IconStyleDrawer : PropertyDrawer
|
||||
public class IconStyleDrawer : BasePropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_IconStyleToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override string ClassName { get { return "IconStyle"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty m_Show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Layer = prop.FindPropertyRelative("m_Layer");
|
||||
SerializedProperty m_Sprite = prop.FindPropertyRelative("m_Sprite");
|
||||
SerializedProperty m_Color = prop.FindPropertyRelative("m_Color");
|
||||
SerializedProperty m_Width = prop.FindPropertyRelative("m_Width");
|
||||
SerializedProperty m_Height = prop.FindPropertyRelative("m_Height");
|
||||
SerializedProperty m_Offset = prop.FindPropertyRelative("m_Offset");
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_IconStyleToggle, prop, null, m_Show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_IconStyleToggle, prop))
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
|
||||
EditorGUI.PropertyField(drawRect, m_Layer);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Sprite);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Color);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Width);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Height);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Offset);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Offset);
|
||||
PropertyField(prop, "m_Layer");
|
||||
PropertyField(prop, "m_Sprite");
|
||||
PropertyField(prop, "m_Color");
|
||||
PropertyField(prop, "m_Width");
|
||||
PropertyField(prop, "m_Height");
|
||||
PropertyField(prop, "m_Offset");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
if (ChartEditorHelper.IsToggle(m_IconStyleToggle, prop))
|
||||
{
|
||||
var hight = 6 * EditorGUIUtility.singleLineHeight + 6 * EditorGUIUtility.standardVerticalSpacing;
|
||||
hight += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Offset"));
|
||||
hight += EditorGUIUtility.standardVerticalSpacing;
|
||||
return hight;
|
||||
}
|
||||
else
|
||||
{
|
||||
return EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,97 +1,44 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(ItemStyle), true)]
|
||||
public class ItemStyleDrawer : PropertyDrawer
|
||||
public class ItemStyleDrawer : BasePropertyDrawer
|
||||
{
|
||||
private int m_CornerRadius = 0;
|
||||
private Dictionary<string, bool> m_ItemStyleToggle = new Dictionary<string, bool>();
|
||||
private Dictionary<string, bool> m_CornerRadiusToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override string ClassName { get { return "ItemStyle"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Color = prop.FindPropertyRelative("m_Color");
|
||||
SerializedProperty m_ToColor = prop.FindPropertyRelative("m_ToColor");
|
||||
SerializedProperty m_BackgroundColor = prop.FindPropertyRelative("m_BackgroundColor");
|
||||
SerializedProperty m_BackgroundWidth = prop.FindPropertyRelative("m_BackgroundWidth");
|
||||
SerializedProperty m_CenterColor = prop.FindPropertyRelative("m_CenterColor");
|
||||
SerializedProperty m_CenterGap = prop.FindPropertyRelative("m_CenterGap");
|
||||
SerializedProperty m_BorderType = prop.FindPropertyRelative("m_BorderType");
|
||||
SerializedProperty m_BorderWidth = prop.FindPropertyRelative("m_BorderWidth");
|
||||
SerializedProperty m_BorderColor = prop.FindPropertyRelative("m_BorderColor");
|
||||
SerializedProperty m_Opacity = prop.FindPropertyRelative("m_Opacity");
|
||||
SerializedProperty m_TooltipFormatter = prop.FindPropertyRelative("m_TooltipFormatter");
|
||||
SerializedProperty m_NumericFormatter = prop.FindPropertyRelative("m_NumericFormatter");
|
||||
SerializedProperty m_CornerRadius = prop.FindPropertyRelative("m_CornerRadius");
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_ItemStyleToggle, prop, "Item Style", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_ItemStyleToggle, prop))
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Color);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ToColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BackgroundColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BackgroundWidth);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_CenterColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_CenterGap);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BorderType);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BorderWidth);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BorderColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Opacity);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_TooltipFormatter);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_NumericFormatter);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_CornerRadiusToggle, m_CornerRadius, "Corner Radius", null, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_CornerRadiusToggle, m_CornerRadius))
|
||||
{
|
||||
ChartEditorHelper.MakeList(ref drawRect, ref this.m_CornerRadius, m_CornerRadius, false, false);
|
||||
}
|
||||
PropertyField(prop, "m_Color");
|
||||
PropertyField(prop, "m_Color0");
|
||||
PropertyField(prop, "m_ToColor");
|
||||
PropertyField(prop, "m_ToColor2");
|
||||
PropertyField(prop, "m_BackgroundColor");
|
||||
PropertyField(prop, "m_BackgroundWidth");
|
||||
PropertyField(prop, "m_CenterColor");
|
||||
PropertyField(prop, "m_CenterGap");
|
||||
PropertyField(prop, "m_BorderType");
|
||||
PropertyField(prop, "m_BorderWidth");
|
||||
PropertyField(prop, "m_BorderColor");
|
||||
PropertyField(prop, "m_BorderColor0");
|
||||
PropertyField(prop, "m_BorderToColor");
|
||||
PropertyField(prop, "m_Opacity");
|
||||
PropertyField(prop, "m_TooltipFormatter");
|
||||
PropertyField(prop, "m_NumericFormatter");
|
||||
PropertyListField(prop, "m_CornerRadius", true);
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_ItemStyleToggle, prop))
|
||||
{
|
||||
height += 14 * EditorGUIUtility.singleLineHeight + 13 * EditorGUIUtility.standardVerticalSpacing;
|
||||
var m_CornerRadius = prop.FindPropertyRelative("m_CornerRadius");
|
||||
if (ChartEditorHelper.IsToggle(m_CornerRadiusToggle, m_CornerRadius))
|
||||
{
|
||||
height += 4 * EditorGUIUtility.singleLineHeight + 3 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
height += 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
@@ -11,105 +11,29 @@ using UnityEngine;
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(Legend), true)]
|
||||
public class LegendDrawer : PropertyDrawer
|
||||
public class LegendDrawer : BasePropertyDrawer
|
||||
{
|
||||
private bool m_DataFoldout = false;
|
||||
private bool m_IconsFoldout = false;
|
||||
private int m_DataSize = 0;
|
||||
private int m_IconsSize = 0;
|
||||
private bool m_ShowJsonDataArea = false;
|
||||
private string m_JsonDataAreaText;
|
||||
private bool m_LegendModuleToggle = false;
|
||||
|
||||
public override string ClassName { get { return "Legend"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_SelectedMode = prop.FindPropertyRelative("m_SelectedMode");
|
||||
SerializedProperty orient = prop.FindPropertyRelative("m_Orient");
|
||||
SerializedProperty location = prop.FindPropertyRelative("m_Location");
|
||||
SerializedProperty itemWidth = prop.FindPropertyRelative("m_ItemWidth");
|
||||
SerializedProperty itemHeight = prop.FindPropertyRelative("m_ItemHeight");
|
||||
SerializedProperty itemGap = prop.FindPropertyRelative("m_ItemGap");
|
||||
SerializedProperty m_ItemAutoColor = prop.FindPropertyRelative("m_ItemAutoColor");
|
||||
SerializedProperty m_Formatter = prop.FindPropertyRelative("m_Formatter");
|
||||
SerializedProperty m_Data = prop.FindPropertyRelative("m_Data");
|
||||
SerializedProperty m_Icons = prop.FindPropertyRelative("m_Icons");
|
||||
SerializedProperty m_TextStyle = prop.FindPropertyRelative("m_TextStyle");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_LegendModuleToggle, "Legend", show);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_LegendModuleToggle)
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, itemWidth);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, itemHeight);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, itemGap);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ItemAutoColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_SelectedMode);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, orient);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, location);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(location);
|
||||
EditorGUI.PropertyField(drawRect, m_Formatter);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
drawRect.width = EditorGUIUtility.labelWidth + 10;
|
||||
m_DataFoldout = EditorGUI.Foldout(drawRect, m_DataFoldout, "Data");
|
||||
ChartEditorHelper.MakeJsonData(ref drawRect, ref m_ShowJsonDataArea, ref m_JsonDataAreaText, prop, pos.width);
|
||||
drawRect.width = pos.width;
|
||||
if (m_DataFoldout)
|
||||
{
|
||||
ChartEditorHelper.MakeList(ref drawRect, ref m_DataSize, m_Data);
|
||||
}
|
||||
m_IconsFoldout = EditorGUI.Foldout(drawRect, m_IconsFoldout, "Icons");
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_IconsFoldout)
|
||||
{
|
||||
ChartEditorHelper.MakeList(ref drawRect, ref m_IconsSize, m_Icons);
|
||||
}
|
||||
EditorGUI.PropertyField(drawRect, m_TextStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_TextStyle);
|
||||
PropertyField(prop, "m_IconType");
|
||||
PropertyField(prop, "m_ItemWidth");
|
||||
PropertyField(prop, "m_ItemHeight");
|
||||
PropertyField(prop, "m_ItemGap");
|
||||
PropertyField(prop, "m_ItemAutoColor");
|
||||
PropertyField(prop, "m_SelectedMode");
|
||||
PropertyField(prop, "m_Orient");
|
||||
PropertyField(prop, "m_Location");
|
||||
PropertyField(prop, "m_Formatter");
|
||||
PropertyField(prop, "m_TextStyle");
|
||||
PropertyListField(prop, "m_Icons");
|
||||
PropertyListField(prop, "m_Data");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (m_LegendModuleToggle)
|
||||
{
|
||||
SerializedProperty location = prop.FindPropertyRelative("m_Location");
|
||||
height += 8 * EditorGUIUtility.singleLineHeight + 7 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(location);
|
||||
height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_DataFoldout)
|
||||
{
|
||||
SerializedProperty m_Data = prop.FindPropertyRelative("m_Data");
|
||||
int num = m_Data.arraySize + 1;
|
||||
height += num * EditorGUIUtility.singleLineHeight + (num - 1) * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
if (m_IconsFoldout)
|
||||
{
|
||||
SerializedProperty m_Icons = prop.FindPropertyRelative("m_Icons");
|
||||
int num = m_Icons.arraySize + 1;
|
||||
height += num * EditorGUIUtility.singleLineHeight + (num - 1) * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_TextStyle"));
|
||||
}
|
||||
if (m_ShowJsonDataArea)
|
||||
{
|
||||
height += EditorGUIUtility.singleLineHeight * 4 + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
height += 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b96d10541649a23468168ba0bf1c0bc5
|
||||
timeCreated: 1554395454
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
@@ -11,52 +11,40 @@ using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(LineArrow), true)]
|
||||
public class LineArrowStyleDrawer : PropertyDrawer
|
||||
[CustomPropertyDrawer(typeof(Arrow), true)]
|
||||
public class ArrowDrawer : BasePropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_LineArrowToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override string ClassName { get { return "Arrow"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Position = prop.FindPropertyRelative("m_Position");
|
||||
SerializedProperty m_Width = prop.FindPropertyRelative("m_Width");
|
||||
SerializedProperty m_Height = prop.FindPropertyRelative("m_Height");
|
||||
SerializedProperty m_Offset = prop.FindPropertyRelative("m_Offset");
|
||||
SerializedProperty m_Dent = prop.FindPropertyRelative("m_Dent");
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_LineArrowToggle, prop, "Line Arrow", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_LineArrowToggle, prop))
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, ""))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Position);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Width);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Height);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Offset);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Dent);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
PropertyField(prop, "m_Width");
|
||||
PropertyField(prop, "m_Height");
|
||||
PropertyField(prop, "m_Offset");
|
||||
PropertyField(prop, "m_Dent");
|
||||
PropertyField(prop, "m_Color");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(LineArrow), true)]
|
||||
public class LineArrowStyleDrawer : BasePropertyDrawer
|
||||
{
|
||||
public override string ClassName { get { return "LineArrow"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_LineArrowToggle, prop))
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
height += 6 * EditorGUIUtility.singleLineHeight + 5 * EditorGUIUtility.standardVerticalSpacing;
|
||||
++EditorGUI.indentLevel;
|
||||
PropertyField(prop, "m_Position");
|
||||
PropertyField(prop, "m_Arrow");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
else
|
||||
{
|
||||
height += 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
96
Assets/XCharts/Editor/PropertyDrawers/LineDrawer.cs
Normal file
96
Assets/XCharts/Editor/PropertyDrawers/LineDrawer.cs
Normal file
@@ -0,0 +1,96 @@
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(BaseLine), true)]
|
||||
public class BaseLineDrawer : BasePropertyDrawer
|
||||
{
|
||||
public override string ClassName { get { return "Line"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
DrawExtendeds(prop);
|
||||
PropertyField(prop, "m_LineStyle");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(AxisLine), true)]
|
||||
public class AxisLineDrawer : BaseLineDrawer
|
||||
{
|
||||
public override string ClassName { get { return "AxisLine"; } }
|
||||
protected override void DrawExtendeds(SerializedProperty prop)
|
||||
{
|
||||
base.DrawExtendeds(prop);
|
||||
PropertyField(prop, "m_OnZero");
|
||||
PropertyField(prop, "m_ShowArrow");
|
||||
PropertyField(prop, "m_Arrow");
|
||||
}
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(AxisSplitLine), true)]
|
||||
public class AxisSplitLineDrawer : BaseLineDrawer
|
||||
{
|
||||
public override string ClassName { get { return "SplitLine"; } }
|
||||
protected override void DrawExtendeds(SerializedProperty prop)
|
||||
{
|
||||
base.DrawExtendeds(prop);
|
||||
PropertyField(prop, "m_Interval");
|
||||
}
|
||||
}
|
||||
[CustomPropertyDrawer(typeof(AxisTick), true)]
|
||||
public class AxisTickDrawer : BaseLineDrawer
|
||||
{
|
||||
public override string ClassName { get { return "AxisTick"; } }
|
||||
protected override void DrawExtendeds(SerializedProperty prop)
|
||||
{
|
||||
base.DrawExtendeds(prop);
|
||||
PropertyField(prop, "m_AlignWithLabel");
|
||||
PropertyField(prop, "m_Inside");
|
||||
PropertyField(prop, "m_ShowStartTick");
|
||||
PropertyField(prop, "m_ShowEndTick");
|
||||
}
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(GaugeAxisSplitLine), true)]
|
||||
public class GaugeAxisSplitDrawer : BaseLineDrawer
|
||||
{
|
||||
public override string ClassName { get { return "Split Line"; } }
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(GaugeAxisTick), true)]
|
||||
public class GaugeAxisTickDrawer : BaseLineDrawer
|
||||
{
|
||||
public override string ClassName { get { return "Axis Tick"; } }
|
||||
protected override void DrawExtendeds(SerializedProperty prop)
|
||||
{
|
||||
base.DrawExtendeds(prop);
|
||||
PropertyField(prop, "m_SplitNumber");
|
||||
}
|
||||
}
|
||||
|
||||
[CustomPropertyDrawer(typeof(GaugeAxisLine), true)]
|
||||
public class GaugeAxisLineDrawer : BaseLineDrawer
|
||||
{
|
||||
public override string ClassName { get { return "Axis Line"; } }
|
||||
protected override void DrawExtendeds(SerializedProperty prop)
|
||||
{
|
||||
base.DrawExtendeds(prop);
|
||||
PropertyField(prop, "m_BarColor");
|
||||
PropertyField(prop, "m_BarBackgroundColor");
|
||||
PropertyField(prop, "m_StageColor");
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/XCharts/Editor/PropertyDrawers/LineDrawer.cs.meta
Normal file
11
Assets/XCharts/Editor/PropertyDrawers/LineDrawer.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2e69f60c7d200439abcf3407c15f8c4d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
@@ -12,48 +12,23 @@ using UnityEngine;
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(LineStyle), true)]
|
||||
public class LineStyleDrawer : PropertyDrawer
|
||||
public class LineStyleDrawer : BasePropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_LineStyleToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override string ClassName { get { return "LineStyle"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Type = prop.FindPropertyRelative("m_Type");
|
||||
SerializedProperty m_Color = prop.FindPropertyRelative("m_Color");
|
||||
SerializedProperty m_Width = prop.FindPropertyRelative("m_Width");
|
||||
SerializedProperty m_Opacity = prop.FindPropertyRelative("m_Opacity");
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_LineStyleToggle, prop, "Line Style", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_LineStyleToggle, prop))
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Type);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Color);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Width);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Opacity);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
PropertyField(prop, "m_Type");
|
||||
PropertyField(prop, "m_Color");
|
||||
PropertyField(prop, "m_ToColor");
|
||||
PropertyField(prop, "m_ToColor2");
|
||||
PropertyField(prop, "m_Width");
|
||||
PropertyField(prop, "m_Opacity");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_LineStyleToggle, prop))
|
||||
{
|
||||
height += 5 * EditorGUIUtility.singleLineHeight + 4 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
else
|
||||
{
|
||||
height += 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
@@ -11,92 +11,21 @@ using UnityEngine;
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(Location), true)]
|
||||
public class LocationDrawer : PropertyDrawer
|
||||
public class LocationDrawer : BasePropertyDrawer
|
||||
{
|
||||
public override string ClassName { get { return "Location"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty align = prop.FindPropertyRelative("m_Align");
|
||||
SerializedProperty left = prop.FindPropertyRelative("m_Left");
|
||||
SerializedProperty right = prop.FindPropertyRelative("m_Right");
|
||||
SerializedProperty top = prop.FindPropertyRelative("m_Top");
|
||||
SerializedProperty bottom = prop.FindPropertyRelative("m_Bottom");
|
||||
EditorGUI.PropertyField(drawRect, align, new GUIContent("Location"));
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, top);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, bottom);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, left);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, right);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// switch ((Location.Align)align.enumValueIndex)
|
||||
// {
|
||||
// case Location.Align.TopCenter:
|
||||
// EditorGUI.PropertyField(drawRect, top);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// break;
|
||||
// case Location.Align.TopLeft:
|
||||
// EditorGUI.PropertyField(drawRect, top);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// EditorGUI.PropertyField(drawRect, left);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// break;
|
||||
// case Location.Align.TopRight:
|
||||
// EditorGUI.PropertyField(drawRect, top);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// EditorGUI.PropertyField(drawRect, right);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// break;
|
||||
// case Location.Align.BottomCenter:
|
||||
// EditorGUI.PropertyField(drawRect, bottom);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// break;
|
||||
// case Location.Align.BottomLeft:
|
||||
// EditorGUI.PropertyField(drawRect, bottom);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// EditorGUI.PropertyField(drawRect, left);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// break;
|
||||
// case Location.Align.BottomRight:
|
||||
// EditorGUI.PropertyField(drawRect, bottom);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// EditorGUI.PropertyField(drawRect, right);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// break;
|
||||
// case Location.Align.Center:
|
||||
// break;
|
||||
// case Location.Align.CenterLeft:
|
||||
// EditorGUI.PropertyField(drawRect, left);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// break;
|
||||
// case Location.Align.CenterRight:
|
||||
// EditorGUI.PropertyField(drawRect, right);
|
||||
// drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
// break;
|
||||
// }
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
return 5 * EditorGUIUtility.singleLineHeight + 4 * EditorGUIUtility.standardVerticalSpacing;
|
||||
// SerializedProperty align = prop.FindPropertyRelative("m_Align");
|
||||
// switch ((Location.Align)align.enumValueIndex)
|
||||
// {
|
||||
// case Location.Align.Center:
|
||||
// return 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
// case Location.Align.TopCenter:
|
||||
// case Location.Align.BottomCenter:
|
||||
// case Location.Align.CenterLeft:
|
||||
// case Location.Align.CenterRight:
|
||||
// return 2 * EditorGUIUtility.singleLineHeight + 2 * EditorGUIUtility.standardVerticalSpacing;
|
||||
// default:
|
||||
// return 3 * EditorGUIUtility.singleLineHeight + 3 * EditorGUIUtility.standardVerticalSpacing;
|
||||
// }
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Align"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
PropertyField(prop, "m_Top");
|
||||
PropertyField(prop, "m_Bottom");
|
||||
PropertyField(prop, "m_Left");
|
||||
PropertyField(prop, "m_Right");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 34092595791508d4b94b074a8788c388
|
||||
timeCreated: 1554307767
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
30
Assets/XCharts/Editor/PropertyDrawers/PolarDrawer.cs
Normal file
30
Assets/XCharts/Editor/PropertyDrawers/PolarDrawer.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(Polar), true)]
|
||||
public class PolarDrawer : BasePropertyDrawer
|
||||
{
|
||||
public override string ClassName { get { return "Polar"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
PropertyTwoFiled(prop, "m_Center");
|
||||
PropertyField(prop, "m_Radius");
|
||||
PropertyField(prop, "m_BackgroundColor");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/XCharts/Editor/PropertyDrawers/PolarDrawer.cs.meta
Normal file
11
Assets/XCharts/Editor/PropertyDrawers/PolarDrawer.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 48ff9465776e54e749f9ff8c424bafe2
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
@@ -12,125 +12,46 @@ using UnityEngine;
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(Radar), true)]
|
||||
public class RadarDrawer : PropertyDrawer
|
||||
public class RadarDrawer : BasePropertyDrawer
|
||||
{
|
||||
SerializedProperty m_Shape;
|
||||
SerializedProperty m_PositionType;
|
||||
SerializedProperty m_Radius;
|
||||
SerializedProperty m_SplitNumber;
|
||||
SerializedProperty m_Center;
|
||||
SerializedProperty m_SplitLine;
|
||||
SerializedProperty m_SplitArea;
|
||||
SerializedProperty m_Indicator;
|
||||
SerializedProperty m_IndicatorGap;
|
||||
SerializedProperty m_CeilRate;
|
||||
SerializedProperty m_IndicatorList;
|
||||
|
||||
private Dictionary<string, bool> m_RadarModuleToggle = new Dictionary<string, bool>();
|
||||
private Dictionary<string, bool> m_IndicatorToggle = new Dictionary<string, bool>();
|
||||
private bool m_IndicatorJsonAreaToggle = false;
|
||||
private string m_IndicatorJsonAreaText;
|
||||
private int m_IndicatorSize;
|
||||
private int m_BackgroundColorSize;
|
||||
|
||||
private void InitProperty(SerializedProperty prop)
|
||||
{
|
||||
m_Shape = prop.FindPropertyRelative("m_Shape");
|
||||
m_PositionType = prop.FindPropertyRelative("m_PositionType");
|
||||
m_Radius = prop.FindPropertyRelative("m_Radius");
|
||||
m_SplitNumber = prop.FindPropertyRelative("m_SplitNumber");
|
||||
m_Center = prop.FindPropertyRelative("m_Center");
|
||||
m_SplitLine = prop.FindPropertyRelative("m_SplitLine");
|
||||
m_SplitArea = prop.FindPropertyRelative("m_SplitArea");
|
||||
m_Indicator = prop.FindPropertyRelative("m_Indicator");
|
||||
m_IndicatorGap = prop.FindPropertyRelative("m_IndicatorGap");
|
||||
m_CeilRate = prop.FindPropertyRelative("m_CeilRate");
|
||||
m_IndicatorList = prop.FindPropertyRelative("m_IndicatorList");
|
||||
}
|
||||
|
||||
public override string ClassName { get { return "Radar"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
InitProperty(prop);
|
||||
Rect drawRect = pos;
|
||||
float defaultLabelWidth = EditorGUIUtility.labelWidth;
|
||||
float defaultFieldWidth = EditorGUIUtility.fieldWidth;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
int index = ChartEditorHelper.GetIndexFromPath(prop);
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_RadarModuleToggle, prop, "Radar " + index, null, true);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_RadarModuleToggle, prop))
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
|
||||
EditorGUIUtility.labelWidth = defaultLabelWidth;
|
||||
EditorGUIUtility.fieldWidth = defaultFieldWidth;
|
||||
EditorGUI.PropertyField(drawRect, m_Shape);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_PositionType);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.LabelField(drawRect, "Center");
|
||||
var startX = drawRect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * 15;
|
||||
var tempWidth = (pos.width - startX + 35) / 2;
|
||||
var centerXRect = new Rect(startX, drawRect.y, tempWidth, drawRect.height);
|
||||
var centerYRect = new Rect(centerXRect.x + tempWidth - 20, drawRect.y, tempWidth, drawRect.height);
|
||||
while (m_Center.arraySize < 2) m_Center.arraySize++;
|
||||
EditorGUI.PropertyField(centerXRect, m_Center.GetArrayElementAtIndex(0), GUIContent.none);
|
||||
EditorGUI.PropertyField(centerYRect, m_Center.GetArrayElementAtIndex(1), GUIContent.none);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.PropertyField(drawRect, m_Radius);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_SplitNumber);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_CeilRate);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.PropertyField(drawRect, m_SplitLine);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_SplitLine);
|
||||
EditorGUI.PropertyField(drawRect, m_SplitArea);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_SplitArea);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_IndicatorToggle, prop, "Indicators", m_Indicator, false);
|
||||
ChartEditorHelper.MakeJsonData(ref drawRect, ref m_IndicatorJsonAreaToggle, ref m_IndicatorJsonAreaText, prop, pos.width, 20);
|
||||
drawRect.width = pos.width;
|
||||
drawRect.x = pos.x;
|
||||
if (ChartEditorHelper.IsToggle(m_IndicatorToggle, prop))
|
||||
{
|
||||
EditorGUI.PropertyField(drawRect, m_IndicatorGap);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
ChartEditorHelper.MakeList(ref drawRect, ref m_IndicatorSize, m_IndicatorList);
|
||||
}
|
||||
PropertyField(prop, "m_Shape");
|
||||
PropertyField(prop, "m_PositionType");
|
||||
PropertyTwoFiled(prop, "m_Center");
|
||||
PropertyField(prop, "m_Radius");
|
||||
PropertyField(prop, "m_SplitNumber");
|
||||
PropertyField(prop, "m_CeilRate");
|
||||
PropertyField(prop, "m_IsAxisTooltip");
|
||||
PropertyField(prop, "m_AxisLine");
|
||||
PropertyField(prop, "m_SplitLine");
|
||||
PropertyField(prop, "m_SplitArea");
|
||||
PropertyField(prop, "m_IndicatorList");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
[CustomPropertyDrawer(typeof(Radar.Indicator), true)]
|
||||
public class RadarIndicatorDrawer : BasePropertyDrawer
|
||||
{
|
||||
public override string ClassName { get { return "Indicator"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
int propNum = 1;
|
||||
if (ChartEditorHelper.IsToggle(m_RadarModuleToggle, prop))
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, ""))
|
||||
{
|
||||
propNum += 8;
|
||||
if (m_IndicatorJsonAreaToggle) propNum += 4;
|
||||
float height = propNum * EditorGUIUtility.singleLineHeight + (propNum - 1) * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_SplitLine"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_SplitArea"));
|
||||
|
||||
if (ChartEditorHelper.IsToggle(m_IndicatorToggle, prop))
|
||||
{
|
||||
m_IndicatorList = prop.FindPropertyRelative("m_IndicatorList");
|
||||
height += EditorGUIUtility.singleLineHeight * 3 + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
for (int i = 0; i < m_IndicatorList.arraySize; i++)
|
||||
{
|
||||
height += EditorGUI.GetPropertyHeight(m_IndicatorList.GetArrayElementAtIndex(i));
|
||||
}
|
||||
}
|
||||
return height;
|
||||
}
|
||||
else
|
||||
{
|
||||
return EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
++EditorGUI.indentLevel;
|
||||
PropertyField(prop, "m_Name");
|
||||
PropertyField(prop, "m_Min");
|
||||
PropertyField(prop, "m_Max");
|
||||
PropertyField(prop, "m_TextStyle");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 09bf71ecf64f321468ac28af28bec878
|
||||
timeCreated: 1555563898
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(Radar.Indicator), true)]
|
||||
public class RadarIndicatorDrawer : PropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_RadarModuleToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
SerializedProperty m_Name = prop.FindPropertyRelative("m_Name");
|
||||
SerializedProperty m_Max = prop.FindPropertyRelative("m_Max");
|
||||
SerializedProperty m_Min = prop.FindPropertyRelative("m_Min");
|
||||
SerializedProperty m_TextStyle = prop.FindPropertyRelative("m_TextStyle");
|
||||
Rect drawRect = pos;
|
||||
float defaultLabelWidth = EditorGUIUtility.labelWidth;
|
||||
float defaultFieldWidth = EditorGUIUtility.fieldWidth;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
|
||||
int index = ChartEditorHelper.GetIndexFromPath(prop);
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_RadarModuleToggle, prop, "Indicator " + index, m_Name, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_RadarModuleToggle, prop))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
|
||||
EditorGUI.PropertyField(drawRect, m_Name);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Min);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Max);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_TextStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_TextStyle);
|
||||
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
if (ChartEditorHelper.IsToggle(m_RadarModuleToggle, prop))
|
||||
{
|
||||
var height = 4 * EditorGUIUtility.singleLineHeight + 3 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_TextStyle"));
|
||||
return height;
|
||||
}
|
||||
else
|
||||
{
|
||||
return EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7fb5d2a98871919459956dc252632435
|
||||
timeCreated: 1556220585
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
@@ -12,388 +12,307 @@ using UnityEngine;
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(Serie), true)]
|
||||
public class SerieDrawer : PropertyDrawer
|
||||
public class SerieDrawer : BasePropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_SerieModuleToggle = new Dictionary<string, bool>();
|
||||
private bool m_IsPolar = false;
|
||||
private List<bool> m_DataFoldout = new List<bool>();
|
||||
private bool m_ShowJsonDataArea = false;
|
||||
private string m_JsonDataAreaText;
|
||||
|
||||
public override string ClassName { get { return "Serie"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty type = prop.FindPropertyRelative("m_Type");
|
||||
SerializedProperty name = prop.FindPropertyRelative("m_Name");
|
||||
SerializedProperty stack = prop.FindPropertyRelative("m_Stack");
|
||||
SerializedProperty m_AxisIndex = prop.FindPropertyRelative("m_AxisIndex");
|
||||
SerializedProperty m_RadarType = prop.FindPropertyRelative("m_RadarType");
|
||||
SerializedProperty m_RadarIndex = prop.FindPropertyRelative("m_RadarIndex");
|
||||
SerializedProperty m_MinShow = prop.FindPropertyRelative("m_MinShow");
|
||||
SerializedProperty m_MaxShow = prop.FindPropertyRelative("m_MaxShow");
|
||||
SerializedProperty m_MaxCache = prop.FindPropertyRelative("m_MaxCache");
|
||||
|
||||
SerializedProperty m_LineStyle = prop.FindPropertyRelative("m_LineStyle");
|
||||
SerializedProperty m_ItemStyle = prop.FindPropertyRelative("m_ItemStyle");
|
||||
SerializedProperty m_LineArrow = prop.FindPropertyRelative("m_LineArrow");
|
||||
SerializedProperty m_LineType = prop.FindPropertyRelative("m_LineType");
|
||||
SerializedProperty m_SampleDist = prop.FindPropertyRelative("m_SampleDist");
|
||||
SerializedProperty m_SampleType = prop.FindPropertyRelative("m_SampleType");
|
||||
SerializedProperty m_SampleAverage = prop.FindPropertyRelative("m_SampleAverage");
|
||||
SerializedProperty m_BarType = prop.FindPropertyRelative("m_BarType");
|
||||
SerializedProperty m_BarPercentStack = prop.FindPropertyRelative("m_BarPercentStack");
|
||||
SerializedProperty m_BarWidth = prop.FindPropertyRelative("m_BarWidth");
|
||||
SerializedProperty m_BarGap = prop.FindPropertyRelative("m_BarGap");
|
||||
SerializedProperty m_BarZebraWidth = prop.FindPropertyRelative("m_BarZebraWidth");
|
||||
SerializedProperty m_BarZebraGap = prop.FindPropertyRelative("m_BarZebraGap");
|
||||
SerializedProperty m_AreaStyle = prop.FindPropertyRelative("m_AreaStyle");
|
||||
SerializedProperty m_Symbol = prop.FindPropertyRelative("m_Symbol");
|
||||
SerializedProperty m_RoseType = prop.FindPropertyRelative("m_RoseType");
|
||||
SerializedProperty m_Space = prop.FindPropertyRelative("m_Space");
|
||||
SerializedProperty m_Center = prop.FindPropertyRelative("m_Center");
|
||||
SerializedProperty m_Radius = prop.FindPropertyRelative("m_Radius");
|
||||
SerializedProperty m_Label = prop.FindPropertyRelative("m_Label");
|
||||
SerializedProperty m_Emphasis = prop.FindPropertyRelative("m_Emphasis");
|
||||
SerializedProperty m_Animation = prop.FindPropertyRelative("m_Animation");
|
||||
SerializedProperty m_DataDimension = prop.FindPropertyRelative("m_ShowDataDimension");
|
||||
SerializedProperty m_ShowDataName = prop.FindPropertyRelative("m_ShowDataName");
|
||||
SerializedProperty m_ShowDataIcon = prop.FindPropertyRelative("m_ShowDataIcon");
|
||||
SerializedProperty m_Min = prop.FindPropertyRelative("m_Min");
|
||||
SerializedProperty m_Max = prop.FindPropertyRelative("m_Max");
|
||||
SerializedProperty m_StartAngle = prop.FindPropertyRelative("m_StartAngle");
|
||||
SerializedProperty m_EndAngle = prop.FindPropertyRelative("m_EndAngle");
|
||||
SerializedProperty m_RingGap = prop.FindPropertyRelative("m_RingGap");
|
||||
SerializedProperty m_SplitNumber = prop.FindPropertyRelative("m_SplitNumber");
|
||||
SerializedProperty m_Clockwise = prop.FindPropertyRelative("m_Clockwise");
|
||||
SerializedProperty m_RoundCap = prop.FindPropertyRelative("m_RoundCap");
|
||||
SerializedProperty m_GaugeType = prop.FindPropertyRelative("m_GaugeType");
|
||||
SerializedProperty m_GaugeAxis = prop.FindPropertyRelative("m_GaugeAxis");
|
||||
SerializedProperty m_GaugePointer = prop.FindPropertyRelative("m_GaugePointer");
|
||||
SerializedProperty m_TitleStyle = prop.FindPropertyRelative("m_TitleStyle");
|
||||
SerializedProperty m_Clip = prop.FindPropertyRelative("m_Clip");
|
||||
SerializedProperty m_Ignore = prop.FindPropertyRelative("m_Ignore");
|
||||
SerializedProperty m_IgnoreValue = prop.FindPropertyRelative("m_IgnoreValue");
|
||||
SerializedProperty m_ShowAsPositiveNumber = prop.FindPropertyRelative("m_ShowAsPositiveNumber");
|
||||
SerializedProperty m_Large = prop.FindPropertyRelative("m_Large");
|
||||
SerializedProperty m_LargeThreshold = prop.FindPropertyRelative("m_LargeThreshold");
|
||||
SerializedProperty m_AvoidLabelOverlap = prop.FindPropertyRelative("m_AvoidLabelOverlap");
|
||||
SerializedProperty m_Datas = prop.FindPropertyRelative("m_Data");
|
||||
|
||||
int index = InitToggle(prop);
|
||||
string moduleName = "Serie " + index;
|
||||
var toggle = ChartEditorHelper.MakeFoldout(ref drawRect, ref m_SerieModuleToggle, prop, moduleName, show);
|
||||
if (!toggle)
|
||||
pos.width -= 9;
|
||||
base.OnGUI(pos, prop, label);
|
||||
var chart = prop.serializedObject.targetObject as BaseChart;
|
||||
var type = prop.FindPropertyRelative("m_Type");
|
||||
var serieType = (SerieType)type.enumValueIndex;
|
||||
if (!MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
var orderButton = 46;
|
||||
var orderButton = 48;
|
||||
var gap = 4;
|
||||
var drawRect = pos;
|
||||
drawRect.x += EditorGUIUtility.labelWidth + gap;
|
||||
drawRect.width = pos.width - drawRect.x + ChartEditorHelper.BOOL_WIDTH - orderButton;
|
||||
EditorGUI.PropertyField(drawRect, type, GUIContent.none);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
type.enumValueIndex = EditorGUI.Popup(drawRect, (int)serieType, GetChartSerieTypeNames(chart));
|
||||
}
|
||||
else
|
||||
{
|
||||
var serieType = (SerieType)type.enumValueIndex;
|
||||
|
||||
m_IsPolar = chart is PolarChart;
|
||||
++EditorGUI.indentLevel;
|
||||
drawRect.x = pos.x;
|
||||
drawRect.width = pos.width;
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, type);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, name);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
type.enumValueIndex = EditorGUI.Popup(m_DrawRect, "Type", (int)serieType, GetChartSerieTypeNames(chart));
|
||||
var hig = EditorGUI.GetPropertyHeight(prop);
|
||||
m_DrawRect.y += hig;
|
||||
m_Heights[m_KeyName] += hig;
|
||||
|
||||
PropertyField(prop, "m_Name");
|
||||
PropertyField(prop, "m_InsertDataToHead");
|
||||
switch (serieType)
|
||||
{
|
||||
case SerieType.Line:
|
||||
EditorGUI.PropertyField(drawRect, stack);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_AxisIndex);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_MinShow);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_MaxShow);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_MaxCache);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_MinShow.intValue < 0) m_MinShow.intValue = 0;
|
||||
if (m_MinShow.intValue < 0) m_MinShow.intValue = 0;
|
||||
if (m_MaxCache.intValue < 0) m_MaxCache.intValue = 0;
|
||||
EditorGUI.PropertyField(drawRect, m_LineType);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_SampleDist);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_SampleType);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_SampleAverage);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Clip);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Ignore);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_IgnoreValue);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ShowAsPositiveNumber);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Large);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_LargeThreshold);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Symbol);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Symbol);
|
||||
EditorGUI.PropertyField(drawRect, m_LineStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_LineStyle);
|
||||
EditorGUI.PropertyField(drawRect, m_LineArrow);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_LineArrow);
|
||||
EditorGUI.PropertyField(drawRect, m_ItemStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
|
||||
EditorGUI.PropertyField(drawRect, m_AreaStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_AreaStyle);
|
||||
EditorGUI.PropertyField(drawRect, m_Label);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
|
||||
EditorGUI.PropertyField(drawRect, m_Emphasis);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis);
|
||||
PropertyField(prop, "m_Stack");
|
||||
if (m_IsPolar)
|
||||
{
|
||||
PropertyField(prop, "m_PolarIndex");
|
||||
}
|
||||
else
|
||||
{
|
||||
PropertyField(prop, "m_XAxisIndex");
|
||||
PropertyField(prop, "m_YAxisIndex");
|
||||
}
|
||||
PropertyFieldLimitMin(prop, "m_MinShow", 0);
|
||||
PropertyFieldLimitMin(prop, "m_MaxShow", 0);
|
||||
PropertyFieldLimitMin(prop, "m_MaxCache", 0);
|
||||
PropertyField(prop, "m_LineType");
|
||||
PropertyField(prop, "m_SampleDist");
|
||||
PropertyField(prop, "m_SampleType");
|
||||
PropertyField(prop, "m_SampleAverage");
|
||||
PropertyField(prop, "m_Clip");
|
||||
PropertyField(prop, "m_Ignore");
|
||||
PropertyField(prop, "m_IgnoreValue");
|
||||
PropertyField(prop, "m_ShowAsPositiveNumber");
|
||||
PropertyField(prop, "m_Large");
|
||||
PropertyField(prop, "m_LargeThreshold");
|
||||
PropertyField(prop, "m_Symbol");
|
||||
PropertyField(prop, "m_LineStyle");
|
||||
PropertyField(prop, "m_LineArrow");
|
||||
PropertyField(prop, "m_AreaStyle");
|
||||
break;
|
||||
case SerieType.Bar:
|
||||
EditorGUI.PropertyField(drawRect, stack);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_AxisIndex);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_MinShow);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_MaxShow);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_MaxCache);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_MinShow.intValue < 0) m_MinShow.intValue = 0;
|
||||
if (m_MinShow.intValue < 0) m_MinShow.intValue = 0;
|
||||
if (m_MaxCache.intValue < 0) m_MaxCache.intValue = 0;
|
||||
EditorGUI.PropertyField(drawRect, m_BarType);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BarPercentStack);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BarWidth);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BarGap);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BarZebraWidth);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BarZebraGap);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Clip);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Ignore);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_IgnoreValue);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ShowAsPositiveNumber);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Large);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_LargeThreshold);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ItemStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
|
||||
EditorGUI.PropertyField(drawRect, m_Label);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
|
||||
EditorGUI.PropertyField(drawRect, m_Emphasis);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis);
|
||||
PropertyField(prop, "m_Stack");
|
||||
if (m_IsPolar)
|
||||
{
|
||||
PropertyField(prop, "m_PolarIndex");
|
||||
}
|
||||
else
|
||||
{
|
||||
PropertyField(prop, "m_XAxisIndex");
|
||||
PropertyField(prop, "m_YAxisIndex");
|
||||
}
|
||||
PropertyFieldLimitMin(prop, "m_MinShow", 0);
|
||||
PropertyFieldLimitMin(prop, "m_MaxShow", 0);
|
||||
PropertyFieldLimitMin(prop, "m_MaxCache", 0);
|
||||
PropertyField(prop, "m_BarType");
|
||||
PropertyField(prop, "m_BarPercentStack");
|
||||
PropertyField(prop, "m_BarWidth");
|
||||
PropertyField(prop, "m_BarGap");
|
||||
PropertyField(prop, "m_BarZebraWidth");
|
||||
PropertyField(prop, "m_BarZebraGap");
|
||||
PropertyField(prop, "m_Clip");
|
||||
PropertyField(prop, "m_Ignore");
|
||||
PropertyField(prop, "m_IgnoreValue");
|
||||
PropertyField(prop, "m_ShowAsPositiveNumber");
|
||||
PropertyField(prop, "m_Large");
|
||||
PropertyField(prop, "m_LargeThreshold");
|
||||
break;
|
||||
case SerieType.Pie:
|
||||
EditorGUI.PropertyField(drawRect, m_RoseType);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Space);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Center, "Center");
|
||||
ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Radius, "Radius");
|
||||
EditorGUI.PropertyField(drawRect, m_RoundCap);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Ignore);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_IgnoreValue);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_AvoidLabelOverlap);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ItemStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
|
||||
EditorGUI.PropertyField(drawRect, m_Label);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
|
||||
EditorGUI.PropertyField(drawRect, m_Emphasis);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis);
|
||||
PropertyField(prop, "m_RoseType");
|
||||
PropertyField(prop, "m_Space");
|
||||
PropertyTwoFiled(prop, "m_Center");
|
||||
PropertyTwoFiled(prop, "m_Radius");
|
||||
PropertyField(prop, "m_MinAngle");
|
||||
PropertyField(prop, "m_RoundCap");
|
||||
PropertyField(prop, "m_Ignore");
|
||||
PropertyField(prop, "m_IgnoreValue");
|
||||
PropertyField(prop, "m_AvoidLabelOverlap");
|
||||
break;
|
||||
case SerieType.Ring:
|
||||
ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Center, "Center");
|
||||
ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Radius, "Radius");
|
||||
EditorGUI.PropertyField(drawRect, m_StartAngle);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_RingGap);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_RoundCap);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Clockwise);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_TitleStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_TitleStyle);
|
||||
EditorGUI.PropertyField(drawRect, m_ItemStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
|
||||
EditorGUI.PropertyField(drawRect, m_Label);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
|
||||
EditorGUI.PropertyField(drawRect, m_Emphasis);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis);
|
||||
PropertyTwoFiled(prop, "m_Center");
|
||||
PropertyTwoFiled(prop, "m_Radius");
|
||||
PropertyField(prop, "m_StartAngle");
|
||||
PropertyField(prop, "m_RingGap");
|
||||
PropertyField(prop, "m_RoundCap");
|
||||
PropertyField(prop, "m_Clockwise");
|
||||
PropertyField(prop, "m_TitleStyle");
|
||||
break;
|
||||
case SerieType.Radar:
|
||||
EditorGUI.PropertyField(drawRect, m_RadarType);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_RadarIndex);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Symbol);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Symbol);
|
||||
EditorGUI.PropertyField(drawRect, m_LineStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_LineStyle);
|
||||
EditorGUI.PropertyField(drawRect, m_ItemStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
|
||||
EditorGUI.PropertyField(drawRect, m_AreaStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_AreaStyle);
|
||||
EditorGUI.PropertyField(drawRect, m_Label);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
|
||||
EditorGUI.PropertyField(drawRect, m_Emphasis);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis);
|
||||
PropertyField(prop, "m_RadarType");
|
||||
PropertyField(prop, "m_RadarIndex");
|
||||
PropertyField(prop, "m_Symbol");
|
||||
PropertyField(prop, "m_LineStyle");
|
||||
PropertyField(prop, "m_AreaStyle");
|
||||
break;
|
||||
case SerieType.Scatter:
|
||||
case SerieType.EffectScatter:
|
||||
EditorGUI.PropertyField(drawRect, m_Clip);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Symbol);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Symbol);
|
||||
EditorGUI.PropertyField(drawRect, m_ItemStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
|
||||
EditorGUI.PropertyField(drawRect, m_Label);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
|
||||
EditorGUI.PropertyField(drawRect, m_Emphasis);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis);
|
||||
PropertyField(prop, "m_Clip");
|
||||
PropertyField(prop, "m_Symbol");
|
||||
break;
|
||||
case SerieType.Heatmap:
|
||||
EditorGUI.PropertyField(drawRect, m_Ignore);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_IgnoreValue);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ItemStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
|
||||
EditorGUI.PropertyField(drawRect, m_Label);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
|
||||
EditorGUI.PropertyField(drawRect, m_Emphasis);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis);
|
||||
PropertyField(prop, "m_Ignore");
|
||||
PropertyField(prop, "m_IgnoreValue");
|
||||
break;
|
||||
case SerieType.Gauge:
|
||||
EditorGUI.PropertyField(drawRect, m_GaugeType);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Center, "Center");
|
||||
//ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Radius, "Radius");
|
||||
EditorGUI.PropertyField(drawRect, m_Radius.GetArrayElementAtIndex(0), new GUIContent("Radius"));
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Min);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Max);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_StartAngle);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_EndAngle);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_SplitNumber);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_SplitNumber.intValue > 36)
|
||||
PropertyField(prop, "m_GaugeType");
|
||||
PropertyTwoFiled(prop, "m_Center");
|
||||
PropertyTwoFiled(prop, "m_Radius");
|
||||
PropertyField(prop, "m_Min");
|
||||
PropertyField(prop, "m_Max");
|
||||
PropertyField(prop, "m_StartAngle");
|
||||
PropertyField(prop, "m_EndAngle");
|
||||
PropertyFieldLimitMax(prop, "m_SplitNumber", 36);
|
||||
PropertyField(prop, "m_RoundCap");
|
||||
PropertyField(prop, "m_TitleStyle");
|
||||
PropertyField(prop, "m_GaugeAxis");
|
||||
PropertyField(prop, "m_GaugePointer");
|
||||
break;
|
||||
case SerieType.Liquid:
|
||||
PropertyField(prop, "m_VesselIndex");
|
||||
PropertyField(prop, "m_Min");
|
||||
PropertyField(prop, "m_Max");
|
||||
PropertyField(prop, "m_WaveLength");
|
||||
PropertyField(prop, "m_WaveHeight");
|
||||
PropertyField(prop, "m_WaveSpeed");
|
||||
PropertyField(prop, "m_WaveOffset");
|
||||
break;
|
||||
case SerieType.Candlestick:
|
||||
PropertyField(prop, "m_XAxisIndex");
|
||||
PropertyField(prop, "m_YAxisIndex");
|
||||
PropertyFieldLimitMin(prop, "m_MinShow", 0);
|
||||
PropertyFieldLimitMin(prop, "m_MaxShow", 0);
|
||||
PropertyFieldLimitMin(prop, "m_MaxCache", 0);
|
||||
PropertyField(prop, "m_BarWidth");
|
||||
PropertyField(prop, "m_Clip");
|
||||
PropertyField(prop, "m_ShowAsPositiveNumber");
|
||||
PropertyField(prop, "m_Large");
|
||||
PropertyField(prop, "m_LargeThreshold");
|
||||
break;
|
||||
case SerieType.Custom:
|
||||
var fileds = chart.GetCustomSerieInspectorShowFileds();
|
||||
if (fileds != null && fileds.Length > 0)
|
||||
{
|
||||
m_SplitNumber.intValue = 36;
|
||||
foreach (var filed in fileds)
|
||||
{
|
||||
PropertyField(prop, filed);
|
||||
}
|
||||
}
|
||||
var customs = chart.GetCustomSerieInspectorCustomFileds();
|
||||
if (customs != null && customs.Length > 0)
|
||||
{
|
||||
foreach (var custom in customs)
|
||||
{
|
||||
var customProp = prop.FindPropertyRelative(custom[0]);
|
||||
var anatherName = custom[1] + " (" + customProp.displayName + ")";
|
||||
EditorGUI.PropertyField(m_DrawRect, customProp, new GUIContent(anatherName));
|
||||
m_DrawRect.y += EditorGUI.GetPropertyHeight(prop);
|
||||
m_Heights[m_KeyName] += hig;
|
||||
}
|
||||
}
|
||||
EditorGUI.PropertyField(drawRect, m_RoundCap);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_TitleStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_TitleStyle);
|
||||
EditorGUI.PropertyField(drawRect, m_GaugeAxis);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_GaugeAxis);
|
||||
EditorGUI.PropertyField(drawRect, m_GaugePointer);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_GaugePointer);
|
||||
EditorGUI.PropertyField(drawRect, m_ItemStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
|
||||
EditorGUI.PropertyField(drawRect, m_Label);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
|
||||
EditorGUI.PropertyField(drawRect, m_Emphasis);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis);
|
||||
break;
|
||||
}
|
||||
EditorGUI.PropertyField(drawRect, m_Animation);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Animation);
|
||||
drawRect.width = EditorGUIUtility.labelWidth + 10;
|
||||
m_DataFoldout[index] = EditorGUI.Foldout(drawRect, m_DataFoldout[index], "Data");
|
||||
ChartEditorHelper.MakeJsonData(ref drawRect, ref m_ShowJsonDataArea, ref m_JsonDataAreaText, prop, pos.width);
|
||||
drawRect.width = pos.width;
|
||||
if (m_DataFoldout[index])
|
||||
{
|
||||
EditorGUI.indentLevel++;
|
||||
PropertyField(prop, "m_ItemStyle");
|
||||
PropertyField(prop, "m_Label");
|
||||
PropertyField(prop, "m_Emphasis");
|
||||
PropertyField(prop, "m_Animation");
|
||||
DrawData(pos, prop, serieType, ref m_DrawRect);
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
float nameWid = 45;
|
||||
private string[] GetChartSerieTypeNames(BaseChart chart)
|
||||
{
|
||||
var list = System.Enum.GetNames(typeof(SerieType));
|
||||
for (int i = 0; i < list.Length; i++)
|
||||
{
|
||||
if (list[i].Equals("Custom"))
|
||||
{
|
||||
var customName = chart.GetCustomSerieTypeName();
|
||||
if (!string.IsNullOrEmpty(customName))
|
||||
{
|
||||
list[i] = customName;
|
||||
}
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
private void DrawData(Rect pos, SerializedProperty prop, SerieType serieType, ref Rect drawRect)
|
||||
{
|
||||
SerializedProperty m_Datas = prop.FindPropertyRelative("m_Data");
|
||||
SerializedProperty m_DataDimension = prop.FindPropertyRelative("m_ShowDataDimension");
|
||||
SerializedProperty m_ShowDataName = prop.FindPropertyRelative("m_ShowDataName");
|
||||
SerializedProperty m_ShowDataIcon = prop.FindPropertyRelative("m_ShowDataIcon");
|
||||
int index = InitToggle(prop);
|
||||
drawRect.width = EditorGUIUtility.labelWidth + 10;
|
||||
m_DataFoldout[index] = EditorGUI.Foldout(drawRect, m_DataFoldout[index], "Data", true);
|
||||
drawRect.width = pos.width;
|
||||
|
||||
AddSingleLineHeight();
|
||||
if (m_DataFoldout[index])
|
||||
{
|
||||
EditorGUI.indentLevel++;
|
||||
|
||||
float nameWid = 45;
|
||||
#if UNITY_2019_3_OR_NEWER
|
||||
var gap = 2;
|
||||
var namegap = 3;
|
||||
#else
|
||||
var gap = 0;
|
||||
var namegap = 0;
|
||||
var gap = 0;
|
||||
var namegap = 0;
|
||||
#endif
|
||||
EditorGUI.PropertyField(new Rect(drawRect.x, drawRect.y, pos.width - 2 * nameWid - 2, pos.height), m_DataDimension);
|
||||
var nameRect = new Rect(pos.width - 2 * nameWid + 14 + gap, drawRect.y, nameWid - gap, pos.height);
|
||||
if (GUI.Button(nameRect, new GUIContent("Name")))
|
||||
{
|
||||
m_ShowDataName.boolValue = !m_ShowDataName.boolValue;
|
||||
}
|
||||
var iconRect = new Rect(pos.width - nameWid + 14, drawRect.y, nameWid + namegap, pos.height);
|
||||
if (GUI.Button(iconRect, new GUIContent("More...")))
|
||||
{
|
||||
m_ShowDataIcon.boolValue = !m_ShowDataIcon.boolValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
var listSize = m_Datas.arraySize;
|
||||
listSize = EditorGUI.IntField(drawRect, "Size", listSize);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
if (listSize < 0) listSize = 0;
|
||||
if (m_DataDimension.intValue < 1) m_DataDimension.intValue = 1;
|
||||
int dimension = m_DataDimension.intValue;
|
||||
bool showName = m_ShowDataName.boolValue;
|
||||
bool showIcon = m_ShowDataIcon.boolValue;
|
||||
bool showSelected = (serieType == SerieType.Pie);
|
||||
if (listSize != m_Datas.arraySize)
|
||||
{
|
||||
while (listSize > m_Datas.arraySize) m_Datas.arraySize++;
|
||||
while (listSize < m_Datas.arraySize) m_Datas.arraySize--;
|
||||
}
|
||||
if (listSize > 30)
|
||||
{
|
||||
int num = listSize > 10 ? 10 : listSize;
|
||||
for (int i = 0; i < num; i++)
|
||||
{
|
||||
DrawDataElement(ref drawRect, dimension, m_Datas, showName, showIcon, showSelected, i, pos.width);
|
||||
}
|
||||
if (num >= 10)
|
||||
{
|
||||
EditorGUI.LabelField(drawRect, "...");
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
DrawDataElement(ref drawRect, dimension, m_Datas, showName, showIcon, showSelected, listSize - 1, pos.width);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < m_Datas.arraySize; i++)
|
||||
{
|
||||
DrawDataElement(ref drawRect, dimension, m_Datas, showName, showIcon, showSelected, i, pos.width);
|
||||
}
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.indentLevel--;
|
||||
EditorGUI.PropertyField(new Rect(drawRect.x, drawRect.y, pos.width - 2 * nameWid - 2, pos.height),
|
||||
m_DataDimension);
|
||||
var nameRect = new Rect(pos.width - 2 * nameWid + 14 + gap, drawRect.y, nameWid - gap, pos.height);
|
||||
if (XChartsSettings.editorBlockEnable)
|
||||
{
|
||||
nameRect.x += ChartEditorHelper.BLOCK_WIDTH;
|
||||
}
|
||||
--EditorGUI.indentLevel;
|
||||
if (GUI.Button(nameRect, new GUIContent("name")))
|
||||
{
|
||||
m_ShowDataName.boolValue = !m_ShowDataName.boolValue;
|
||||
}
|
||||
var iconRect = new Rect(pos.width - nameWid + 14, drawRect.y, nameWid + namegap, pos.height);
|
||||
if (XChartsSettings.editorBlockEnable)
|
||||
{
|
||||
iconRect.x += ChartEditorHelper.BLOCK_WIDTH;
|
||||
}
|
||||
if (GUI.Button(iconRect, new GUIContent("more")))
|
||||
{
|
||||
m_ShowDataIcon.boolValue = !m_ShowDataIcon.boolValue;
|
||||
}
|
||||
var jsonRect = new Rect(pos.width - 70, drawRect.y - pos.height - 2, 90, pos.height);
|
||||
if (GUI.Button(jsonRect, new GUIContent("data from json")))
|
||||
{
|
||||
PraseJsonDataEditor.chart = prop.serializedObject.targetObject as BaseChart;
|
||||
PraseJsonDataEditor.serieIndex = index;
|
||||
PraseJsonDataEditor.ShowWindow();
|
||||
}
|
||||
AddSingleLineHeight();
|
||||
var listSize = m_Datas.arraySize;
|
||||
listSize = EditorGUI.IntField(drawRect, "Size", listSize);
|
||||
AddSingleLineHeight();
|
||||
|
||||
if (listSize < 0) listSize = 0;
|
||||
if (m_DataDimension.intValue < 1) m_DataDimension.intValue = 1;
|
||||
int dimension = m_DataDimension.intValue;
|
||||
bool showName = m_ShowDataName.boolValue;
|
||||
bool showIcon = m_ShowDataIcon.boolValue;
|
||||
bool showSelected = (serieType == SerieType.Pie);
|
||||
if (listSize != m_Datas.arraySize)
|
||||
{
|
||||
while (listSize > m_Datas.arraySize) m_Datas.arraySize++;
|
||||
while (listSize < m_Datas.arraySize) m_Datas.arraySize--;
|
||||
}
|
||||
if (listSize > 30 && !XChartsSettings.editorShowAllListData)
|
||||
{
|
||||
int num = listSize > 10 ? 10 : listSize;
|
||||
for (int i = 0; i < num; i++)
|
||||
{
|
||||
DrawDataElement(ref drawRect, dimension, m_Datas, showName, showIcon, showSelected, i, pos.width);
|
||||
}
|
||||
if (num >= 10)
|
||||
{
|
||||
EditorGUI.LabelField(drawRect, "...");
|
||||
AddSingleLineHeight();
|
||||
DrawDataElement(ref drawRect, dimension, m_Datas, showName, showIcon, showSelected, listSize - 1, pos.width);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < m_Datas.arraySize; i++)
|
||||
{
|
||||
DrawDataElement(ref drawRect, dimension, m_Datas, showName, showIcon, showSelected, i, pos.width);
|
||||
}
|
||||
}
|
||||
AddHeight(EditorGUIUtility.standardVerticalSpacing);
|
||||
EditorGUI.indentLevel--;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -424,7 +343,7 @@ namespace XCharts
|
||||
{
|
||||
drawRect.width = drawRect.width - 18;
|
||||
EditorGUI.PropertyField(drawRect, element, new GUIContent("Element " + index));
|
||||
drawRect.x = currentWidth - 45;
|
||||
drawRect.x = currentWidth - 40;
|
||||
EditorGUI.PropertyField(drawRect, selected, GUIContent.none);
|
||||
drawRect.x = lastX;
|
||||
drawRect.width = lastWid;
|
||||
@@ -433,7 +352,7 @@ namespace XCharts
|
||||
{
|
||||
EditorGUI.PropertyField(drawRect, element, new GUIContent("Element " + index));
|
||||
}
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(element) + EditorGUIUtility.standardVerticalSpacing;
|
||||
AddHeight(EditorGUI.GetPropertyHeight(element));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -448,7 +367,7 @@ namespace XCharts
|
||||
var startX = drawRect.x + EditorGUIUtility.labelWidth - EditorGUI.indentLevel * 15 + gap;
|
||||
var dataWidTotal = (currentWidth - (startX + 20.5f + 1));
|
||||
var dataWid = dataWidTotal / fieldCount;
|
||||
var xWid = dataWid - 4;
|
||||
var xWid = dataWid - 2;
|
||||
for (int i = 0; i < dimension; i++)
|
||||
{
|
||||
var dataCount = i < 1 ? 2 : i + 1;
|
||||
@@ -469,8 +388,7 @@ namespace XCharts
|
||||
drawRect.width = dataWid + 40 + dimension * namegap;
|
||||
EditorGUI.PropertyField(drawRect, sereName, GUIContent.none);
|
||||
}
|
||||
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
AddSingleLineHeight();
|
||||
drawRect.x = lastX;
|
||||
drawRect.width = lastWid;
|
||||
EditorGUIUtility.fieldWidth = lastFieldWid;
|
||||
@@ -479,6 +397,7 @@ namespace XCharts
|
||||
if (showDetail)
|
||||
{
|
||||
EditorGUI.indentLevel += 2;
|
||||
var m_Ignore = serieData.FindPropertyRelative("m_Ignore");
|
||||
var m_Icon = serieData.FindPropertyRelative("m_IconStyle");
|
||||
var m_EnableLabel = serieData.FindPropertyRelative("m_EnableLabel");
|
||||
var m_Label = serieData.FindPropertyRelative("m_Label");
|
||||
@@ -488,144 +407,26 @@ namespace XCharts
|
||||
var m_Emphasis = serieData.FindPropertyRelative("m_Emphasis");
|
||||
var m_EnableSymbol = serieData.FindPropertyRelative("m_EnableSymbol");
|
||||
var m_Symbol = serieData.FindPropertyRelative("m_Symbol");
|
||||
EditorGUI.PropertyField(drawRect, m_Ignore);
|
||||
AddHeight(EditorGUI.GetPropertyHeight(m_Ignore));
|
||||
EditorGUI.PropertyField(drawRect, m_Icon);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Icon);
|
||||
AddHeight(EditorGUI.GetPropertyHeight(m_Icon));
|
||||
EditorGUI.PropertyField(drawRect, m_Symbol);
|
||||
ChartEditorHelper.MakeBool(drawRect, m_EnableSymbol, 1, "(enable)");
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Symbol);
|
||||
AddHeight(EditorGUI.GetPropertyHeight(m_Symbol));
|
||||
EditorGUI.PropertyField(drawRect, m_Label);
|
||||
ChartEditorHelper.MakeBool(drawRect, m_EnableLabel, 1, "(enable)");
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Label);
|
||||
AddHeight(EditorGUI.GetPropertyHeight(m_Label));
|
||||
EditorGUI.PropertyField(drawRect, m_ItemStyle);
|
||||
ChartEditorHelper.MakeBool(drawRect, m_EnableItemStyle, 1, "(enable)");
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_ItemStyle);
|
||||
AddHeight(EditorGUI.GetPropertyHeight(m_ItemStyle));
|
||||
EditorGUI.PropertyField(drawRect, m_Emphasis);
|
||||
ChartEditorHelper.MakeBool(drawRect, m_EnableEmphasis, 1, "(enable)");
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Emphasis);
|
||||
AddHeight(EditorGUI.GetPropertyHeight(m_Emphasis));
|
||||
EditorGUI.indentLevel -= 2;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
int index = InitToggle(prop);
|
||||
if (!m_SerieModuleToggle.ContainsKey(prop.propertyPath) || !m_SerieModuleToggle[prop.propertyPath])
|
||||
{
|
||||
return EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
else
|
||||
{
|
||||
SerializedProperty type = prop.FindPropertyRelative("m_Type");
|
||||
var serieType = (SerieType)type.enumValueIndex;
|
||||
switch (serieType)
|
||||
{
|
||||
case SerieType.Line:
|
||||
height += 19 * EditorGUIUtility.singleLineHeight + 18 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Symbol"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_LineStyle"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_LineArrow"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_AreaStyle"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Emphasis"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Animation"));
|
||||
break;
|
||||
case SerieType.Bar:
|
||||
height += 21 * EditorGUIUtility.singleLineHeight + 20 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Emphasis"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Animation"));
|
||||
break;
|
||||
case SerieType.Pie:
|
||||
height += 12 * EditorGUIUtility.singleLineHeight + 11 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Emphasis"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Animation"));
|
||||
break;
|
||||
case SerieType.Ring:
|
||||
height += 10 * EditorGUIUtility.singleLineHeight + 9 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_TitleStyle"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Emphasis"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Animation"));
|
||||
break;
|
||||
case SerieType.Radar:
|
||||
height += 6 * EditorGUIUtility.singleLineHeight + 5 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Symbol"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_LineStyle"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_AreaStyle"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Emphasis"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Animation"));
|
||||
break;
|
||||
case SerieType.Scatter:
|
||||
case SerieType.EffectScatter:
|
||||
height += 5 * EditorGUIUtility.singleLineHeight + 4 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Symbol"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Emphasis"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Animation"));
|
||||
break;
|
||||
case SerieType.Heatmap:
|
||||
height += 6 * EditorGUIUtility.singleLineHeight + 5 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Emphasis"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Animation"));
|
||||
break;
|
||||
case SerieType.Gauge:
|
||||
height += 13 * EditorGUIUtility.singleLineHeight + 12 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_TitleStyle"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_GaugeAxis"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_GaugePointer"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Emphasis"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Animation"));
|
||||
break;
|
||||
}
|
||||
if (m_DataFoldout[index])
|
||||
{
|
||||
SerializedProperty m_Data = prop.FindPropertyRelative("m_Data");
|
||||
height += 2 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
int num = m_Data.arraySize;
|
||||
if (num > 30)
|
||||
{
|
||||
num = 11;
|
||||
height += (num + 1) * EditorGUIUtility.singleLineHeight + (num) * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
else
|
||||
{
|
||||
height += (num) * EditorGUIUtility.singleLineHeight + (num - 1) * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
height += EditorGUIUtility.standardVerticalSpacing;
|
||||
if (prop.FindPropertyRelative("m_ShowDataIcon").boolValue)
|
||||
{
|
||||
for (int i = 0; i < num; i++)
|
||||
{
|
||||
var item = m_Data.GetArrayElementAtIndex(i);
|
||||
height += EditorGUI.GetPropertyHeight(item.FindPropertyRelative("m_IconStyle"));
|
||||
height += EditorGUI.GetPropertyHeight(item.FindPropertyRelative("m_Symbol"));
|
||||
height += EditorGUI.GetPropertyHeight(item.FindPropertyRelative("m_Label"));
|
||||
height += EditorGUI.GetPropertyHeight(item.FindPropertyRelative("m_ItemStyle"));
|
||||
height += EditorGUI.GetPropertyHeight(item.FindPropertyRelative("m_Emphasis"));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (m_ShowJsonDataArea)
|
||||
{
|
||||
height += EditorGUIUtility.singleLineHeight * 4 + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
}
|
||||
|
||||
private int InitToggle(SerializedProperty prop)
|
||||
{
|
||||
int index = 0;
|
||||
@@ -636,7 +437,7 @@ namespace XCharts
|
||||
var str = prop.propertyPath.Substring(sindex + 1, eindex - sindex - 1);
|
||||
int.TryParse(str, out index);
|
||||
}
|
||||
if (index >= m_DataFoldout.Count)
|
||||
while (index >= m_DataFoldout.Count)
|
||||
{
|
||||
m_DataFoldout.Add(false);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c30d9496b99e39944a6987e390bed91f
|
||||
timeCreated: 1555200849
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -1,123 +1,48 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(SerieLabel), true)]
|
||||
public class SerieLabelDrawer : PropertyDrawer
|
||||
public class SerieLabelDrawer : BasePropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_SerieLabelToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override string ClassName { get { return "Label"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Position = prop.FindPropertyRelative("m_Position");
|
||||
SerializedProperty m_Formatter = prop.FindPropertyRelative("m_Formatter");
|
||||
SerializedProperty m_Offset = prop.FindPropertyRelative("m_Offset");
|
||||
SerializedProperty m_Margin = prop.FindPropertyRelative("m_Margin");
|
||||
SerializedProperty m_Rotate = prop.FindPropertyRelative("m_Rotate");
|
||||
SerializedProperty m_PaddingLeftRight = prop.FindPropertyRelative("m_PaddingLeftRight");
|
||||
SerializedProperty m_PaddingTopBottom = prop.FindPropertyRelative("m_PaddingTopBottom");
|
||||
SerializedProperty m_Color = prop.FindPropertyRelative("m_Color");
|
||||
SerializedProperty m_BackgroundColor = prop.FindPropertyRelative("m_BackgroundColor");
|
||||
SerializedProperty m_BackgroundWidth = prop.FindPropertyRelative("m_BackgroundWidth");
|
||||
SerializedProperty m_BackgroundHeight = prop.FindPropertyRelative("m_BackgroundHeight");
|
||||
SerializedProperty m_FontSize = prop.FindPropertyRelative("m_FontSize");
|
||||
SerializedProperty m_FontStyle = prop.FindPropertyRelative("m_FontStyle");
|
||||
SerializedProperty m_Line = prop.FindPropertyRelative("m_Line");
|
||||
SerializedProperty m_LineType = prop.FindPropertyRelative("m_LineType");
|
||||
SerializedProperty m_LineColor = prop.FindPropertyRelative("m_LineColor");
|
||||
SerializedProperty m_LineWidth = prop.FindPropertyRelative("m_LineWidth");
|
||||
SerializedProperty m_LineLength1 = prop.FindPropertyRelative("m_LineLength1");
|
||||
SerializedProperty m_LineLength2 = prop.FindPropertyRelative("m_LineLength2");
|
||||
SerializedProperty m_Border = prop.FindPropertyRelative("m_Border");
|
||||
SerializedProperty m_BorderWidth = prop.FindPropertyRelative("m_BorderWidth");
|
||||
SerializedProperty m_BorderColor = prop.FindPropertyRelative("m_BorderColor");
|
||||
SerializedProperty m_NumericFormatter = prop.FindPropertyRelative("m_NumericFormatter");
|
||||
SerializedProperty m_AutoOffset = prop.FindPropertyRelative("m_AutoOffset");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_SerieLabelToggle, prop, null, show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_SerieLabelToggle, prop))
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Position);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.PropertyField(drawRect, m_Offset);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Offset);
|
||||
|
||||
EditorGUI.PropertyField(drawRect, m_AutoOffset);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Margin);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Formatter);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_NumericFormatter);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Color);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BackgroundColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BackgroundWidth);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BackgroundHeight);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Rotate);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_PaddingLeftRight);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_PaddingTopBottom);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FontSize);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FontStyle);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Border);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BorderWidth);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BorderColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Line);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_LineType);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_LineColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_LineWidth);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_LineLength1);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_LineLength2);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
PropertyField(prop, "m_Position");
|
||||
PropertyField(prop, "m_Offset");
|
||||
PropertyField(prop, "m_AutoOffset");
|
||||
PropertyField(prop, "m_Margin");
|
||||
PropertyField(prop, "m_Formatter");
|
||||
PropertyField(prop, "m_NumericFormatter");
|
||||
PropertyField(prop, "m_BackgroundWidth");
|
||||
PropertyField(prop, "m_BackgroundHeight");
|
||||
PropertyField(prop, "m_PaddingLeftRight");
|
||||
PropertyField(prop, "m_PaddingTopBottom");
|
||||
PropertyField(prop, "m_Border");
|
||||
PropertyField(prop, "m_BorderWidth");
|
||||
PropertyField(prop, "m_BorderColor");
|
||||
PropertyField(prop, "m_Line");
|
||||
PropertyField(prop, "m_LineType");
|
||||
PropertyField(prop, "m_LineColor");
|
||||
PropertyField(prop, "m_LineWidth");
|
||||
PropertyField(prop, "m_LineGap");
|
||||
PropertyField(prop, "m_LineLength1");
|
||||
PropertyField(prop, "m_LineLength2");
|
||||
PropertyField(prop, "m_TextStyle");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_SerieLabelToggle, prop))
|
||||
{
|
||||
height += 24 * EditorGUIUtility.singleLineHeight + 23 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Offset"));
|
||||
}
|
||||
else
|
||||
{
|
||||
height = EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
@@ -12,92 +12,37 @@ using UnityEngine;
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(SerieSymbol), true)]
|
||||
public class SerieSymbolDrawer : PropertyDrawer
|
||||
public class SerieSymbolDrawer : BasePropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_SerieSymbolToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override string ClassName { get { return "Symbol"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty m_Show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_Type = prop.FindPropertyRelative("m_Type");
|
||||
SerializedProperty m_SizeType = prop.FindPropertyRelative("m_SizeType");
|
||||
SerializedProperty m_Size = prop.FindPropertyRelative("m_Size");
|
||||
SerializedProperty m_SelectedSize = prop.FindPropertyRelative("m_SelectedSize");
|
||||
SerializedProperty m_DataIndex = prop.FindPropertyRelative("m_DataIndex");
|
||||
SerializedProperty m_DataScale = prop.FindPropertyRelative("m_DataScale");
|
||||
SerializedProperty m_SelectedDataScale = prop.FindPropertyRelative("m_SelectedDataScale");
|
||||
SerializedProperty m_StartIndex = prop.FindPropertyRelative("m_StartIndex");
|
||||
SerializedProperty m_Interval = prop.FindPropertyRelative("m_Interval");
|
||||
SerializedProperty m_ForceShowLast = prop.FindPropertyRelative("m_ForceShowLast");
|
||||
SerializedProperty m_Gap = prop.FindPropertyRelative("m_Gap");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_SerieSymbolToggle, prop, null, m_Show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_SerieSymbolToggle, prop))
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
|
||||
EditorGUI.PropertyField(drawRect, m_Type);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Gap);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_SizeType);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
SerieSymbolSizeType sizeType = (SerieSymbolSizeType)m_SizeType.enumValueIndex;
|
||||
switch (sizeType)
|
||||
PropertyField(prop, "m_Type");
|
||||
PropertyField(prop, "m_Gap");
|
||||
PropertyField(prop, "m_SizeType");
|
||||
switch ((SerieSymbolSizeType)prop.FindPropertyRelative("m_SizeType").enumValueIndex)
|
||||
{
|
||||
case SerieSymbolSizeType.Custom:
|
||||
EditorGUI.PropertyField(drawRect, m_Size);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_SelectedSize);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
PropertyField(prop, "m_Size");
|
||||
PropertyField(prop, "m_SelectedSize");
|
||||
break;
|
||||
case SerieSymbolSizeType.FromData:
|
||||
EditorGUI.PropertyField(drawRect, m_DataIndex);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_DataScale);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_SelectedDataScale);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
PropertyField(prop, "m_DataIndex");
|
||||
PropertyField(prop, "m_DataScale");
|
||||
PropertyField(prop, "m_SelectedDataScale");
|
||||
break;
|
||||
case SerieSymbolSizeType.Callback:
|
||||
break;
|
||||
}
|
||||
EditorGUI.PropertyField(drawRect, m_StartIndex);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Interval);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ForceShowLast);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
PropertyField(prop, "m_StartIndex");
|
||||
PropertyField(prop, "m_Interval");
|
||||
PropertyField(prop, "m_ForceShowLast");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
if (ChartEditorHelper.IsToggle(m_SerieSymbolToggle, prop))
|
||||
{
|
||||
SerializedProperty m_SizeType = prop.FindPropertyRelative("m_SizeType");
|
||||
SerieSymbolSizeType sizeType = (SerieSymbolSizeType)m_SizeType.enumValueIndex;
|
||||
var hig = 9 * EditorGUIUtility.singleLineHeight + 9 * EditorGUIUtility.standardVerticalSpacing;
|
||||
switch (sizeType)
|
||||
{
|
||||
case SerieSymbolSizeType.Custom:
|
||||
break;
|
||||
case SerieSymbolSizeType.FromData:
|
||||
hig += 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
break;
|
||||
case SerieSymbolSizeType.Callback:
|
||||
break;
|
||||
}
|
||||
return hig;
|
||||
}
|
||||
else
|
||||
{
|
||||
return EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
@@ -13,9 +13,6 @@ namespace XCharts
|
||||
[CustomPropertyDrawer(typeof(Series), true)]
|
||||
public class SeriesDrawer : PropertyDrawer
|
||||
{
|
||||
private int m_DataSize = 0;
|
||||
private bool m_ShowJsonDataArea = false;
|
||||
private string m_JsonDataAreaText;
|
||||
private bool m_SeriesModuleToggle = false;
|
||||
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
@@ -23,15 +20,8 @@ namespace XCharts
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty m_Series = prop.FindPropertyRelative("m_Series");
|
||||
|
||||
drawRect.width = EditorGUIUtility.labelWidth + 10;
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_SeriesModuleToggle, "Series");
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
drawRect.width = pos.width;
|
||||
if (m_SeriesModuleToggle)
|
||||
{
|
||||
ChartEditorHelper.MakeList(ref drawRect, ref m_DataSize, m_Series, true);
|
||||
}
|
||||
m_SeriesModuleToggle = ChartEditorHelper.MakeListWithFoldout(ref drawRect,
|
||||
m_Series, m_SeriesModuleToggle, true, true);
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
@@ -43,13 +33,9 @@ namespace XCharts
|
||||
height += 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
for (int i = 0; i < m_Data.arraySize; i++)
|
||||
{
|
||||
height += EditorGUI.GetPropertyHeight(m_Data.GetArrayElementAtIndex(i));
|
||||
height += EditorGUI.GetPropertyHeight(m_Data.GetArrayElementAtIndex(i)) + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
if (m_ShowJsonDataArea)
|
||||
{
|
||||
height += EditorGUIUtility.singleLineHeight * 3 + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
height += 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
return height;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6c2458b1901047547b1a59d097786816
|
||||
timeCreated: 1556016849
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
@@ -11,54 +11,35 @@ using UnityEngine;
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(Settings), true)]
|
||||
public class SettingsDrawer : PropertyDrawer
|
||||
public class SettingsDrawer : BasePropertyDrawer
|
||||
{
|
||||
private bool m_SettingsModuleToggle = false;
|
||||
|
||||
public override string ClassName { get { return "Settings"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
|
||||
SerializedProperty m_LineSmoothStyle = prop.FindPropertyRelative("m_LineSmoothStyle");
|
||||
SerializedProperty m_LineSmoothness = prop.FindPropertyRelative("m_LineSmoothness");
|
||||
SerializedProperty m_LineSegmentDistance = prop.FindPropertyRelative("m_LineSegmentDistance");
|
||||
SerializedProperty m_CicleSmoothness = prop.FindPropertyRelative("m_CicleSmoothness");
|
||||
SerializedProperty m_VisualMapTriangeLen = prop.FindPropertyRelative("m_VisualMapTriangeLen");
|
||||
SerializedProperty m_PieTooltipExtraRadius = prop.FindPropertyRelative("m_PieTooltipExtraRadius");
|
||||
SerializedProperty m_PieSelectedOffset = prop.FindPropertyRelative("m_PieSelectedOffset");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_SettingsModuleToggle, "Settings");
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_SettingsModuleToggle)
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, ""))
|
||||
{
|
||||
var btnWidth = 50;
|
||||
var btnRect = new Rect(pos.x + pos.width - btnWidth, pos.y, btnWidth, EditorGUIUtility.singleLineHeight);
|
||||
if (GUI.Button(btnRect, new GUIContent("Reset", "Reset to default settings")))
|
||||
{
|
||||
var chart = prop.serializedObject.targetObject as BaseChart;
|
||||
chart.settings.Reset();
|
||||
}
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_LineSmoothStyle);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_LineSmoothness);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_LineSegmentDistance);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_CicleSmoothness);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_VisualMapTriangeLen);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_PieTooltipExtraRadius);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_PieSelectedOffset);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
PropertyField(prop, "m_ReversePainter");
|
||||
PropertyField(prop, "m_MaxPainter");
|
||||
PropertyField(prop, "m_BasePainterMaterial");
|
||||
PropertyField(prop, "m_SeriePainterMaterial");
|
||||
PropertyField(prop, "m_TopPainterMaterial");
|
||||
PropertyField(prop, "m_LineSmoothStyle");
|
||||
PropertyField(prop, "m_LineSmoothness");
|
||||
PropertyField(prop, "m_LineSegmentDistance");
|
||||
PropertyField(prop, "m_CicleSmoothness");
|
||||
PropertyField(prop, "m_LegendIconLineWidth");
|
||||
PropertyListField(prop, "m_LegendIconCornerRadius", true);
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
int num = 1;
|
||||
if (m_SettingsModuleToggle)
|
||||
{
|
||||
num = 8;
|
||||
}
|
||||
return num * EditorGUIUtility.singleLineHeight + (num - 1) * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,53 +1,30 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(TextLimit), true)]
|
||||
public class TextLimitDrawer : PropertyDrawer
|
||||
public class TextLimitDrawer : BasePropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_TextLimitToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override string ClassName { get { return "TextLimit"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty m_Enable = prop.FindPropertyRelative("m_Enable");
|
||||
SerializedProperty m_MaxWidth = prop.FindPropertyRelative("m_MaxWidth");
|
||||
SerializedProperty m_Gap = prop.FindPropertyRelative("m_Gap");
|
||||
SerializedProperty m_LimitSuffix = prop.FindPropertyRelative("m_Suffix");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_TextLimitToggle, prop, "Text Limit", m_Enable, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_TextLimitToggle, prop))
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Enable"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_MaxWidth);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Gap);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_LimitSuffix);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
PropertyField(prop, "m_MaxWidth");
|
||||
PropertyField(prop, "m_Gap");
|
||||
PropertyField(prop, "m_Suffix");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_TextLimitToggle, prop))
|
||||
{
|
||||
height += 3 * EditorGUIUtility.singleLineHeight + 2 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,71 +1,50 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
#if dUI_TextMeshPro
|
||||
using TMPro;
|
||||
#endif
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(TextStyle), true)]
|
||||
public class TextStyleDrawer : PropertyDrawer
|
||||
public class TextStyleDrawer : BasePropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_TextStyleToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override string ClassName { get { return "TextStyle"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty m_Font = prop.FindPropertyRelative("m_Font");
|
||||
SerializedProperty m_Rotate = prop.FindPropertyRelative("m_Rotate");
|
||||
SerializedProperty m_Color = prop.FindPropertyRelative("m_Color");
|
||||
SerializedProperty m_BackgroundColor = prop.FindPropertyRelative("m_BackgroundColor");
|
||||
SerializedProperty m_FontSize = prop.FindPropertyRelative("m_FontSize");
|
||||
SerializedProperty m_FontStyle = prop.FindPropertyRelative("m_FontStyle");
|
||||
SerializedProperty m_Offset = prop.FindPropertyRelative("m_Offset");
|
||||
SerializedProperty m_LineSpacing = prop.FindPropertyRelative("m_LineSpacing");
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_TextStyleToggle, prop, null,null,false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_TextStyleToggle, prop))
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, ""))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_Font);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Rotate);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Offset);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_Offset);
|
||||
EditorGUI.PropertyField(drawRect, m_Color);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BackgroundColor);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FontSize);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FontStyle);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_LineSpacing);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
#if dUI_TextMeshPro
|
||||
PropertyField(prop, "m_TMPFont");
|
||||
#else
|
||||
PropertyField(prop, "m_Font");
|
||||
#endif
|
||||
PropertyField(prop, "m_Rotate");
|
||||
PropertyField(prop, "m_Offset");
|
||||
PropertyField(prop, "m_Color");
|
||||
PropertyField(prop, "m_BackgroundColor");
|
||||
PropertyField(prop, "m_FontSize");
|
||||
PropertyField(prop, "m_LineSpacing");
|
||||
#if dUI_TextMeshPro
|
||||
PropertyField(prop, "m_TMPFontStyle");
|
||||
PropertyField(prop, "m_TMPAlignment");
|
||||
#else
|
||||
PropertyField(prop, "m_FontStyle");
|
||||
PropertyField(prop, "m_Alignment");
|
||||
PropertyField(prop, "m_AutoWrap");
|
||||
PropertyField(prop, "m_AutoAlign");
|
||||
#endif
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_TextStyleToggle, prop))
|
||||
{
|
||||
height += 8 * EditorGUIUtility.singleLineHeight + 7 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Offset"));
|
||||
}
|
||||
else
|
||||
{
|
||||
height += 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
166
Assets/XCharts/Editor/PropertyDrawers/ThemeDrawer.cs
Normal file
166
Assets/XCharts/Editor/PropertyDrawers/ThemeDrawer.cs
Normal file
@@ -0,0 +1,166 @@
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.IO;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
#if dUI_TextMeshPro
|
||||
using TMPro;
|
||||
#endif
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(ChartTheme), true)]
|
||||
public class ThemeDrawer : BasePropertyDrawer
|
||||
{
|
||||
public override string ClassName { get { return "Theme"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
base.OnGUI(pos, prop, label);
|
||||
var defaultWidth = pos.width;
|
||||
var defaultX = pos.x;
|
||||
var btnWidth = 50;
|
||||
if (MakeFoldout(prop, ""))
|
||||
{
|
||||
var btnRect = new Rect(m_DrawRect);
|
||||
btnRect.x = defaultX + defaultWidth - 2 * btnWidth - 2;
|
||||
btnRect.y = m_DrawRect.y - EditorGUIUtility.singleLineHeight - 3;
|
||||
btnRect.width = btnWidth;
|
||||
var chart = prop.serializedObject.targetObject as BaseChart;
|
||||
var lastFont = chart.theme.font;
|
||||
#if dUI_TextMeshPro
|
||||
var lastTMPFont = chart.theme.tmpFont;
|
||||
#endif
|
||||
if (GUI.Button(btnRect, new GUIContent("Reset", "Reset to theme default color")))
|
||||
{
|
||||
chart.theme.ResetTheme();
|
||||
chart.RefreshAllComponent();
|
||||
}
|
||||
btnRect.x = defaultX + defaultWidth - btnWidth;
|
||||
btnRect.width = btnWidth;
|
||||
if (GUI.Button(btnRect, new GUIContent("Export", "Export theme to asset for a new theme")))
|
||||
{
|
||||
ExportThemeWindow.target = chart;
|
||||
EditorWindow.GetWindow(typeof(ExportThemeWindow));
|
||||
}
|
||||
++EditorGUI.indentLevel;
|
||||
var chartNameList = XThemeMgr.GetAllThemeNames();
|
||||
var lastIndex = chartNameList.IndexOf(chart.theme.themeName);
|
||||
var y = pos.y + EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
var selectedIndex = EditorGUI.Popup(new Rect(pos.x, y, pos.width, EditorGUIUtility.singleLineHeight),
|
||||
"Theme", lastIndex, chartNameList.ToArray());
|
||||
AddSingleLineHeight();
|
||||
if (lastIndex != selectedIndex)
|
||||
{
|
||||
XThemeMgr.SwitchTheme(chart, chartNameList[selectedIndex]);
|
||||
}
|
||||
#if dUI_TextMeshPro
|
||||
PropertyField(prop, "m_TMPFont");
|
||||
#else
|
||||
PropertyField(prop, "m_Font");
|
||||
#endif
|
||||
PropertyField(prop, "m_ContrastColor");
|
||||
PropertyField(prop, "m_BackgroundColor");
|
||||
PropertyField(prop, "m_ColorPalette");
|
||||
PropertyField(prop, "m_Common");
|
||||
PropertyField(prop, "m_Title");
|
||||
PropertyField(prop, "m_SubTitle");
|
||||
PropertyField(prop, "m_Legend");
|
||||
PropertyField(prop, "m_Axis");
|
||||
PropertyField(prop, "m_RadiusAxis");
|
||||
PropertyField(prop, "m_AngleAxis");
|
||||
PropertyField(prop, "m_Polar");
|
||||
PropertyField(prop, "m_Gauge");
|
||||
PropertyField(prop, "m_Radar");
|
||||
PropertyField(prop, "m_Tooltip");
|
||||
PropertyField(prop, "m_DataZoom");
|
||||
PropertyField(prop, "m_VisualMap");
|
||||
PropertyField(prop, "m_Serie");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
private void AddPropertyField(Rect pos, SerializedProperty prop, ref float y)
|
||||
{
|
||||
float height = EditorGUI.GetPropertyHeight(prop, new GUIContent(prop.displayName), true);
|
||||
EditorGUI.PropertyField(new Rect(pos.x, y, pos.width, height), prop, true);
|
||||
y += height + EditorGUIUtility.standardVerticalSpacing;
|
||||
m_Heights[m_KeyName] += height + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
|
||||
public class ExportThemeWindow : EditorWindow
|
||||
{
|
||||
public static BaseChart target;
|
||||
private static ExportThemeWindow window;
|
||||
private string m_ChartName;
|
||||
static void Init()
|
||||
{
|
||||
window = (ExportThemeWindow)EditorWindow.GetWindow(typeof(ExportThemeWindow), false, "Export Theme", true);
|
||||
window.minSize = new Vector2(600, 50);
|
||||
window.maxSize = new Vector2(600, 50);
|
||||
window.Show();
|
||||
}
|
||||
|
||||
void OnInspectorUpdate()
|
||||
{
|
||||
Repaint();
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
if (target == null)
|
||||
{
|
||||
Close();
|
||||
return;
|
||||
}
|
||||
GUILayout.Space(10);
|
||||
GUILayout.Label("Input a new name for theme:");
|
||||
m_ChartName = GUILayout.TextField(m_ChartName);
|
||||
|
||||
GUILayout.Space(10);
|
||||
GUILayout.Label("Export path:");
|
||||
if (string.IsNullOrEmpty(m_ChartName))
|
||||
{
|
||||
GUILayout.Label("Need input a new name.");
|
||||
}
|
||||
else
|
||||
{
|
||||
GUILayout.Label(XThemeMgr.GetThemeAssetPath(m_ChartName));
|
||||
}
|
||||
|
||||
GUILayout.Space(20);
|
||||
if (GUILayout.Button("Export"))
|
||||
{
|
||||
if (string.IsNullOrEmpty(m_ChartName))
|
||||
{
|
||||
ShowNotification(new GUIContent("ERROR:Need input a new name!"));
|
||||
}
|
||||
else if (XThemeMgr.ContainsTheme(m_ChartName))
|
||||
{
|
||||
ShowNotification(new GUIContent("ERROR:The name you entered is already in use!"));
|
||||
}
|
||||
else if (IsAssetsExist(XThemeMgr.GetThemeAssetPath(m_ChartName)))
|
||||
{
|
||||
ShowNotification(new GUIContent("ERROR:The asset is exist! \npath="
|
||||
+ XThemeMgr.GetThemeAssetPath(m_ChartName)));
|
||||
}
|
||||
else
|
||||
{
|
||||
XThemeMgr.ExportTheme(target.theme, m_ChartName);
|
||||
ShowNotification(new GUIContent("SUCCESS:The theme is exported. \npath="
|
||||
+ XThemeMgr.GetThemeAssetPath(m_ChartName)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private bool IsAssetsExist(string path)
|
||||
{
|
||||
return File.Exists(Application.dataPath + "/../" + path);
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/XCharts/Editor/PropertyDrawers/ThemeDrawer.cs.meta
Normal file
11
Assets/XCharts/Editor/PropertyDrawers/ThemeDrawer.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 704e7c2793bca4050821c6e0756c8316
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,369 +0,0 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEditorInternal;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(ThemeInfo), true)]
|
||||
public class ThemeInfoDrawer : PropertyDrawer
|
||||
{
|
||||
ReorderableList m_ColorPaletteList;
|
||||
bool m_ColorPaletteFoldout;
|
||||
bool m_ThemeModuleToggle = false;
|
||||
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
var defaultWidth = drawRect.width;
|
||||
var defaultX = drawRect.x;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty m_Theme = prop.FindPropertyRelative("m_Theme");
|
||||
SerializedProperty m_Font = prop.FindPropertyRelative("m_Font");
|
||||
SerializedProperty m_BackgroundColor = prop.FindPropertyRelative("m_BackgroundColor");
|
||||
SerializedProperty m_TextColor = prop.FindPropertyRelative("m_TitleTextColor");
|
||||
SerializedProperty m_SubTextColor = prop.FindPropertyRelative("m_TitleSubTextColor");
|
||||
SerializedProperty m_LegendTextColor = prop.FindPropertyRelative("m_LegendTextColor");
|
||||
SerializedProperty m_LegendUnableColor = prop.FindPropertyRelative("m_LegendUnableColor");
|
||||
SerializedProperty m_AxisTextColor = prop.FindPropertyRelative("m_AxisTextColor");
|
||||
SerializedProperty m_AxisLineColor = prop.FindPropertyRelative("m_AxisLineColor");
|
||||
SerializedProperty m_AxisSplitLineColor = prop.FindPropertyRelative("m_AxisSplitLineColor");
|
||||
SerializedProperty m_TooltipBackgroundColor = prop.FindPropertyRelative("m_TooltipBackgroundColor");
|
||||
SerializedProperty m_TooltipFlagAreaColor = prop.FindPropertyRelative("m_TooltipFlagAreaColor");
|
||||
SerializedProperty m_TooltipTextColor = prop.FindPropertyRelative("m_TooltipTextColor");
|
||||
SerializedProperty m_TooltipLabelColor = prop.FindPropertyRelative("m_TooltipLabelColor");
|
||||
SerializedProperty m_TooltipLineColor = prop.FindPropertyRelative("m_TooltipLineColor");
|
||||
SerializedProperty m_DataZoomLineColor = prop.FindPropertyRelative("m_DataZoomLineColor");
|
||||
SerializedProperty m_DataZoomSelectedColor = prop.FindPropertyRelative("m_DataZoomSelectedColor");
|
||||
SerializedProperty m_DataZoomTextColor = prop.FindPropertyRelative("m_DataZoomTextColor");
|
||||
SerializedProperty m_VisualMapBackgroundColor = prop.FindPropertyRelative("m_VisualMapBackgroundColor");
|
||||
SerializedProperty m_VisualMapBorderColor = prop.FindPropertyRelative("m_VisualMapBorderColor");
|
||||
SerializedProperty m_ColorPalette = prop.FindPropertyRelative("m_ColorPalette");
|
||||
|
||||
SerializedProperty m_CustomFont = prop.FindPropertyRelative("m_CustomFont");
|
||||
SerializedProperty m_CustomBackgroundColor = prop.FindPropertyRelative("m_CustomBackgroundColor");
|
||||
SerializedProperty m_CustomTextColor = prop.FindPropertyRelative("m_CustomTitleTextColor");
|
||||
SerializedProperty m_CustomSubTextColor = prop.FindPropertyRelative("m_CustomTitleSubTextColor");
|
||||
SerializedProperty m_CustomLegendTextColor = prop.FindPropertyRelative("m_CustomLegendTextColor");
|
||||
SerializedProperty m_CustomLegendUnableColor = prop.FindPropertyRelative("m_CustomLegendUnableColor");
|
||||
SerializedProperty m_CustomAxisTextColor = prop.FindPropertyRelative("m_CustomAxisTextColor");
|
||||
SerializedProperty m_CustomAxisLineColor = prop.FindPropertyRelative("m_CustomAxisLineColor");
|
||||
SerializedProperty m_CustomAxisSplitLineColor = prop.FindPropertyRelative("m_CustomAxisSplitLineColor");
|
||||
SerializedProperty m_CustomTooltipBackgroundColor = prop.FindPropertyRelative("m_CustomTooltipBackgroundColor");
|
||||
SerializedProperty m_CustomTooltipFlagAreaColor = prop.FindPropertyRelative("m_CustomTooltipFlagAreaColor");
|
||||
SerializedProperty m_CustomTooltipTextColor = prop.FindPropertyRelative("m_CustomTooltipTextColor");
|
||||
SerializedProperty m_CustomTooltipLabelColor = prop.FindPropertyRelative("m_CustomTooltipLabelColor");
|
||||
SerializedProperty m_CustomTooltipLineColor = prop.FindPropertyRelative("m_CustomTooltipLineColor");
|
||||
SerializedProperty m_CustomDataZoomLineColor = prop.FindPropertyRelative("m_CustomDataZoomLineColor");
|
||||
SerializedProperty m_CustomDataZoomSelectedColor = prop.FindPropertyRelative("m_CustomDataZoomSelectedColor");
|
||||
SerializedProperty m_CustomDataZoomTextColor = prop.FindPropertyRelative("m_CustomDataZoomTextColor");
|
||||
SerializedProperty m_CustomVisualMapBackgroundColor = prop.FindPropertyRelative("m_CustomVisualMapBackgroundColor");
|
||||
SerializedProperty m_CustomVisualMapBorderColor = prop.FindPropertyRelative("m_CustomVisualMapBorderColor");
|
||||
SerializedProperty m_CustomColorPalette = prop.FindPropertyRelative("m_CustomColorPalette");
|
||||
|
||||
var btnWidth = 45;
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_ThemeModuleToggle, "Theme");
|
||||
drawRect.x += EditorGUIUtility.labelWidth + ChartEditorHelper.GAP_WIDTH;
|
||||
drawRect.width = defaultWidth - EditorGUIUtility.labelWidth - ChartEditorHelper.GAP_WIDTH
|
||||
- (m_ThemeModuleToggle ? btnWidth + 3 : 0);
|
||||
EditorGUI.PropertyField(drawRect, m_Theme, GUIContent.none);
|
||||
if (m_ThemeModuleToggle)
|
||||
{
|
||||
drawRect.x = defaultX + defaultWidth - btnWidth;
|
||||
drawRect.width = btnWidth;
|
||||
if (GUI.Button(drawRect, new GUIContent("Reset", "Reset to theme default color")))
|
||||
{
|
||||
m_CustomFont.objectReferenceValue = null;
|
||||
m_CustomBackgroundColor.colorValue = Color.clear;
|
||||
m_CustomTextColor.colorValue = Color.clear;
|
||||
m_CustomSubTextColor.colorValue = Color.clear;
|
||||
m_CustomLegendTextColor.colorValue = Color.clear;
|
||||
m_CustomLegendUnableColor.colorValue = Color.clear;
|
||||
m_CustomAxisTextColor.colorValue = Color.clear;
|
||||
m_CustomAxisLineColor.colorValue = Color.clear;
|
||||
m_CustomAxisSplitLineColor.colorValue = Color.clear;
|
||||
m_CustomTooltipBackgroundColor.colorValue = Color.clear;
|
||||
m_CustomTooltipFlagAreaColor.colorValue = Color.clear;
|
||||
m_CustomTooltipTextColor.colorValue = Color.clear;
|
||||
m_CustomTooltipLabelColor.colorValue = Color.clear;
|
||||
m_CustomTooltipLineColor.colorValue = Color.clear;
|
||||
m_CustomDataZoomLineColor.colorValue = Color.clear;
|
||||
m_CustomDataZoomSelectedColor.colorValue = Color.clear;
|
||||
m_CustomDataZoomTextColor.colorValue = Color.clear;
|
||||
m_CustomVisualMapBackgroundColor.colorValue = Color.clear;
|
||||
m_CustomVisualMapBorderColor.colorValue = Color.clear;
|
||||
for (int i = 0; i < m_CustomColorPalette.arraySize; i++)
|
||||
{
|
||||
m_CustomColorPalette.GetArrayElementAtIndex(i).colorValue = Color.clear;
|
||||
}
|
||||
|
||||
ThemeInfo defaultThemeInfo = ThemeInfo.Default;
|
||||
switch (m_Theme.enumValueIndex)
|
||||
{
|
||||
case ((int)Theme.Default): defaultThemeInfo = ThemeInfo.Default; break;
|
||||
case ((int)Theme.Light): defaultThemeInfo = ThemeInfo.Light; break;
|
||||
case ((int)Theme.Dark): defaultThemeInfo = ThemeInfo.Dark; break;
|
||||
}
|
||||
m_Font.objectReferenceValue = defaultThemeInfo.font;
|
||||
m_BackgroundColor.colorValue = defaultThemeInfo.backgroundColor;
|
||||
m_TextColor.colorValue = defaultThemeInfo.titleTextColor;
|
||||
m_SubTextColor.colorValue = defaultThemeInfo.titleSubTextColor;
|
||||
m_LegendTextColor.colorValue = defaultThemeInfo.legendTextColor;
|
||||
m_LegendUnableColor.colorValue = defaultThemeInfo.legendUnableColor;
|
||||
m_AxisTextColor.colorValue = defaultThemeInfo.axisTextColor;
|
||||
m_AxisLineColor.colorValue = defaultThemeInfo.axisLineColor;
|
||||
m_AxisSplitLineColor.colorValue = defaultThemeInfo.axisSplitLineColor;
|
||||
m_TooltipBackgroundColor.colorValue = defaultThemeInfo.tooltipBackgroundColor;
|
||||
m_TooltipFlagAreaColor.colorValue = defaultThemeInfo.tooltipFlagAreaColor;
|
||||
m_TooltipTextColor.colorValue = defaultThemeInfo.tooltipTextColor;
|
||||
m_TooltipLabelColor.colorValue = defaultThemeInfo.tooltipLabelColor;
|
||||
m_TooltipLineColor.colorValue = defaultThemeInfo.tooltipLineColor;
|
||||
m_DataZoomLineColor.colorValue = defaultThemeInfo.dataZoomLineColor;
|
||||
m_DataZoomSelectedColor.colorValue = defaultThemeInfo.dataZoomSelectedColor;
|
||||
m_DataZoomTextColor.colorValue = defaultThemeInfo.dataZoomTextColor;
|
||||
m_VisualMapBackgroundColor.colorValue = defaultThemeInfo.visualMapBackgroundColor;
|
||||
m_VisualMapBorderColor.colorValue = defaultThemeInfo.visualMapBorderColor;
|
||||
for (int i = 0; i < m_ColorPalette.arraySize; i++)
|
||||
{
|
||||
m_ColorPalette.GetArrayElementAtIndex(i).colorValue = defaultThemeInfo.GetColor(i);
|
||||
}
|
||||
}
|
||||
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
drawRect.x = defaultX;
|
||||
drawRect.width = defaultWidth;
|
||||
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.BeginChangeCheck();
|
||||
var font = m_CustomFont.objectReferenceValue != null ? m_CustomFont : m_Font;
|
||||
EditorGUI.PropertyField(drawRect, font);
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomFont.objectReferenceValue = font.objectReferenceValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
var color = m_CustomBackgroundColor.colorValue != Color.clear ? m_CustomBackgroundColor : m_BackgroundColor;
|
||||
EditorGUI.PropertyField(drawRect, color, new GUIContent("Background Color"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomBackgroundColor.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
color = m_CustomTextColor.colorValue != Color.clear ? m_CustomTextColor : m_TextColor;
|
||||
EditorGUI.PropertyField(drawRect, color, new GUIContent("Title Text Color"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomTextColor.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
color = m_CustomSubTextColor.colorValue != Color.clear ? m_CustomSubTextColor : m_SubTextColor;
|
||||
EditorGUI.PropertyField(drawRect, color, new GUIContent("Title SubText Color"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomSubTextColor.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
color = m_CustomLegendTextColor.colorValue != Color.clear ? m_CustomLegendTextColor : m_LegendTextColor;
|
||||
EditorGUI.PropertyField(drawRect, color, new GUIContent("LegendText Color"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomLegendTextColor.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
color = m_CustomLegendUnableColor.colorValue != Color.clear ? m_CustomLegendUnableColor : m_LegendUnableColor;
|
||||
EditorGUI.PropertyField(drawRect, color, new GUIContent("LegendUnable Color"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomLegendUnableColor.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
color = m_CustomAxisTextColor.colorValue != Color.clear ? m_CustomAxisTextColor : m_AxisTextColor;
|
||||
EditorGUI.PropertyField(drawRect, color, new GUIContent("AxisText Color"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomAxisTextColor.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
color = m_CustomAxisLineColor.colorValue != Color.clear ? m_CustomAxisLineColor : m_AxisLineColor;
|
||||
EditorGUI.PropertyField(drawRect, color, new GUIContent("AxisLine Color"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomAxisLineColor.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
color = m_CustomAxisSplitLineColor.colorValue != Color.clear ? m_CustomAxisSplitLineColor : m_AxisSplitLineColor;
|
||||
EditorGUI.PropertyField(drawRect, color, new GUIContent("AxisSplitLine Color"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomAxisSplitLineColor.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
color = m_CustomTooltipBackgroundColor.colorValue != Color.clear ? m_CustomTooltipBackgroundColor : m_TooltipBackgroundColor;
|
||||
EditorGUI.PropertyField(drawRect, color, new GUIContent("Tooltip Background Color"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomTooltipBackgroundColor.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
color = m_CustomTooltipFlagAreaColor.colorValue != Color.clear ? m_CustomTooltipFlagAreaColor : m_TooltipFlagAreaColor;
|
||||
EditorGUI.PropertyField(drawRect, color, new GUIContent("Tooltip FlagArea Color"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomTooltipFlagAreaColor.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
color = m_CustomTooltipTextColor.colorValue != Color.clear ? m_CustomTooltipTextColor : m_TooltipTextColor;
|
||||
EditorGUI.PropertyField(drawRect, color, new GUIContent("Tooltip Text Color"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomTooltipTextColor.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
color = m_CustomTooltipLabelColor.colorValue != Color.clear ? m_CustomTooltipLabelColor : m_TooltipLabelColor;
|
||||
EditorGUI.PropertyField(drawRect, color, new GUIContent("Tooltip Label Color"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomTooltipLabelColor.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
color = m_CustomTooltipLineColor.colorValue != Color.clear ? m_CustomTooltipLineColor : m_TooltipLineColor;
|
||||
EditorGUI.PropertyField(drawRect, color, new GUIContent("Tooltip Line Color"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomTooltipLineColor.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
color = m_CustomDataZoomLineColor.colorValue != Color.clear ? m_CustomDataZoomLineColor : m_DataZoomLineColor;
|
||||
EditorGUI.PropertyField(drawRect, color, new GUIContent("DataZoom Line Color"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomDataZoomLineColor.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
color = m_CustomDataZoomSelectedColor.colorValue != Color.clear ? m_CustomDataZoomSelectedColor : m_DataZoomSelectedColor;
|
||||
EditorGUI.PropertyField(drawRect, color, new GUIContent("DataZoom Selected Color"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomDataZoomSelectedColor.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
color = m_CustomDataZoomTextColor.colorValue != Color.clear ? m_CustomDataZoomTextColor : m_DataZoomTextColor;
|
||||
EditorGUI.PropertyField(drawRect, color, new GUIContent("DataZoom Text Color"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomDataZoomTextColor.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
color = m_CustomVisualMapBackgroundColor.colorValue != Color.clear ? m_CustomVisualMapBackgroundColor : m_VisualMapBackgroundColor;
|
||||
EditorGUI.PropertyField(drawRect, color, new GUIContent("VisualMap Background Color"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomVisualMapBackgroundColor.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
color = m_CustomVisualMapBorderColor.colorValue != Color.clear ? m_CustomVisualMapBorderColor : m_VisualMapBorderColor;
|
||||
EditorGUI.PropertyField(drawRect, color, new GUIContent("VisualMap Border Color"));
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
m_CustomVisualMapBorderColor.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
|
||||
m_ColorPaletteFoldout = EditorGUI.Foldout(drawRect, m_ColorPaletteFoldout, "ColorPalette");
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_ColorPaletteFoldout)
|
||||
{
|
||||
EditorGUI.indentLevel++;
|
||||
for (int i = 0; i < m_ColorPalette.arraySize; i++)
|
||||
{
|
||||
while (i > m_CustomColorPalette.arraySize - 1)
|
||||
{
|
||||
m_CustomColorPalette.arraySize++;
|
||||
}
|
||||
var customElement = m_CustomColorPalette.GetArrayElementAtIndex(i);
|
||||
color = !ChartHelper.IsClearColor(customElement.colorValue) ?
|
||||
customElement :
|
||||
m_ColorPalette.GetArrayElementAtIndex(i);
|
||||
EditorGUI.BeginChangeCheck();
|
||||
EditorGUI.PropertyField(drawRect, color);
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
customElement.colorValue = color.colorValue;
|
||||
}
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
EditorGUI.indentLevel--;
|
||||
}
|
||||
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
if (!m_ThemeModuleToggle)
|
||||
{
|
||||
return EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
else
|
||||
{
|
||||
float height = 0;
|
||||
int propertyCount = 20;
|
||||
if (m_ColorPaletteFoldout)
|
||||
{
|
||||
SerializedProperty m_ColorPalette = prop.FindPropertyRelative("m_ColorPalette");
|
||||
propertyCount += m_ColorPalette.arraySize + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
propertyCount += 1;
|
||||
}
|
||||
height += propertyCount * EditorGUIUtility.singleLineHeight + (propertyCount - 1) * EditorGUIUtility.standardVerticalSpacing;
|
||||
return height;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bcac1baa719179549b24d7056f7e0cb5
|
||||
timeCreated: 1554541305
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
@@ -11,55 +11,23 @@ using UnityEngine;
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(Title), true)]
|
||||
public class TitleDrawer : PropertyDrawer
|
||||
public class TitleDrawer : BasePropertyDrawer
|
||||
{
|
||||
private bool m_TitleModuleToggle = false;
|
||||
|
||||
public override string ClassName { get { return "Title"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty text = prop.FindPropertyRelative("m_Text");
|
||||
SerializedProperty m_TextStyle = prop.FindPropertyRelative("m_TextStyle");
|
||||
SerializedProperty subText = prop.FindPropertyRelative("m_SubText");
|
||||
SerializedProperty m_SubTextStyle = prop.FindPropertyRelative("m_SubTextStyle");
|
||||
SerializedProperty m_ItemGap = prop.FindPropertyRelative("m_ItemGap");
|
||||
SerializedProperty location = prop.FindPropertyRelative("m_Location");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_TitleModuleToggle, "Title", show);
|
||||
++EditorGUI.indentLevel;
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_TitleModuleToggle)
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
EditorGUI.PropertyField(drawRect, text);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, subText);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ItemGap, new GUIContent("Item Gap"));
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, location);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(location);
|
||||
EditorGUI.PropertyField(drawRect, m_TextStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_TextStyle);
|
||||
EditorGUI.PropertyField(drawRect, m_SubTextStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_SubTextStyle);
|
||||
++EditorGUI.indentLevel;
|
||||
PropertyField(prop, "m_Text");
|
||||
PropertyField(prop, "m_SubText");
|
||||
PropertyField(prop, "m_ItemGap");
|
||||
PropertyField(prop, "m_Location");
|
||||
PropertyField(prop, "m_TextStyle");
|
||||
PropertyField(prop, "m_SubTextStyle");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (m_TitleModuleToggle)
|
||||
{
|
||||
height += 3 * EditorGUIUtility.singleLineHeight + 2 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_TextStyle"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_SubTextStyle"));
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Location"));
|
||||
}
|
||||
height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 22ae7ec778f27c1409cb9151ce7b9aba
|
||||
timeCreated: 1554304641
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
@@ -12,40 +12,18 @@ using UnityEngine;
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(TitleStyle), true)]
|
||||
public class TitleStyleDrawer : PropertyDrawer
|
||||
public class TitleStyleDrawer : BasePropertyDrawer
|
||||
{
|
||||
private Dictionary<string, bool> m_TitleStyleToggle = new Dictionary<string, bool>();
|
||||
|
||||
public override string ClassName { get { return "TitleStyle"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty m_TextStyle = prop.FindPropertyRelative("m_TextStyle");
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_TitleStyleToggle, prop, "Title Style", show, false);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (ChartEditorHelper.IsToggle(m_TitleStyleToggle, prop))
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
EditorGUI.PropertyField(drawRect, m_TextStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_TextStyle);
|
||||
PropertyField(prop, "m_TextStyle");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
float height = 0;
|
||||
if (ChartEditorHelper.IsToggle(m_TitleStyleToggle, prop))
|
||||
{
|
||||
height += 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_TextStyle"));
|
||||
}
|
||||
else
|
||||
{
|
||||
height += 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
return height;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
/******************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/******************************************/
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
@@ -11,78 +11,33 @@ using UnityEngine;
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(Tooltip), true)]
|
||||
public class TooltipDrawer : PropertyDrawer
|
||||
public class TooltipDrawer : BasePropertyDrawer
|
||||
{
|
||||
private bool m_TooltipModuleToggle = false;
|
||||
|
||||
public override string ClassName { get { return "Tooltip"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
Rect drawRect = pos;
|
||||
drawRect.height = EditorGUIUtility.singleLineHeight;
|
||||
SerializedProperty show = prop.FindPropertyRelative("m_Show");
|
||||
SerializedProperty type = prop.FindPropertyRelative("m_Type");
|
||||
SerializedProperty m_Formatter = prop.FindPropertyRelative("m_Formatter");
|
||||
SerializedProperty m_TitleFormatter = prop.FindPropertyRelative("m_TitleFormatter");
|
||||
SerializedProperty m_ItemFormatter = prop.FindPropertyRelative("m_ItemFormatter");
|
||||
SerializedProperty m_FixedWidth = prop.FindPropertyRelative("m_FixedWidth");
|
||||
SerializedProperty m_FixedHeight = prop.FindPropertyRelative("m_FixedHeight");
|
||||
SerializedProperty m_MinWidth = prop.FindPropertyRelative("m_MinWidth");
|
||||
SerializedProperty m_MinHeight = prop.FindPropertyRelative("m_MinHeight");
|
||||
SerializedProperty m_NumericFormatter = prop.FindPropertyRelative("m_NumericFormatter");
|
||||
SerializedProperty m_PaddingLeftRight = prop.FindPropertyRelative("m_PaddingLeftRight");
|
||||
SerializedProperty m_PaddingTopBottom = prop.FindPropertyRelative("m_PaddingTopBottom");
|
||||
SerializedProperty m_BackgroundImage = prop.FindPropertyRelative("m_BackgroundImage");
|
||||
SerializedProperty m_IgnoreDataDefaultContent = prop.FindPropertyRelative("m_IgnoreDataDefaultContent");
|
||||
SerializedProperty m_LineStyle = prop.FindPropertyRelative("m_LineStyle");
|
||||
SerializedProperty m_TextStyle = prop.FindPropertyRelative("m_TextStyle");
|
||||
|
||||
ChartEditorHelper.MakeFoldout(ref drawRect, ref m_TooltipModuleToggle, "Tooltip", show);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
if (m_TooltipModuleToggle)
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
EditorGUI.indentLevel++;
|
||||
EditorGUI.PropertyField(drawRect, type);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_Formatter);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_TitleFormatter);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_ItemFormatter);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_NumericFormatter);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FixedWidth);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_FixedHeight);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_MinWidth);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_MinHeight);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_PaddingLeftRight);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_PaddingTopBottom);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_BackgroundImage);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_IgnoreDataDefaultContent);
|
||||
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
EditorGUI.PropertyField(drawRect, m_LineStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_LineStyle);
|
||||
EditorGUI.PropertyField(drawRect, m_TextStyle);
|
||||
drawRect.y += EditorGUI.GetPropertyHeight(m_TextStyle);
|
||||
EditorGUI.indentLevel--;
|
||||
++EditorGUI.indentLevel;
|
||||
PropertyField(prop, "m_Type");
|
||||
PropertyField(prop, "m_Formatter");
|
||||
PropertyField(prop, "m_TitleFormatter");
|
||||
PropertyField(prop, "m_ItemFormatter");
|
||||
PropertyField(prop, "m_NumericFormatter");
|
||||
PropertyField(prop, "m_FixedWidth");
|
||||
PropertyField(prop, "m_FixedHeight");
|
||||
PropertyField(prop, "m_MinWidth");
|
||||
PropertyField(prop, "m_MinHeight");
|
||||
PropertyField(prop, "m_PaddingLeftRight");
|
||||
PropertyField(prop, "m_PaddingTopBottom");
|
||||
PropertyField(prop, "m_BackgroundImage");
|
||||
PropertyField(prop, "m_IgnoreDataDefaultContent");
|
||||
PropertyField(prop, "m_Offset");
|
||||
PropertyField(prop, "m_LineStyle");
|
||||
PropertyField(prop, "m_TextStyle");
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
|
||||
public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
if (m_TooltipModuleToggle)
|
||||
return 14 * EditorGUIUtility.singleLineHeight + 13 * EditorGUIUtility.standardVerticalSpacing +
|
||||
EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_LineStyle")) +
|
||||
EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_TextStyle"));
|
||||
else
|
||||
return EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5600b7009bc024a49800448cece012e2
|
||||
timeCreated: 1554419729
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
|
||||
47
Assets/XCharts/Editor/PropertyDrawers/VesselDrawer.cs
Normal file
47
Assets/XCharts/Editor/PropertyDrawers/VesselDrawer.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
/************************************************/
|
||||
/* */
|
||||
/* Copyright (c) 2018 - 2021 monitor1394 */
|
||||
/* https://github.com/monitor1394 */
|
||||
/* */
|
||||
/************************************************/
|
||||
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace XCharts
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(Vessel), true)]
|
||||
public class VesselDrawer : BasePropertyDrawer
|
||||
{
|
||||
public override string ClassName { get { return "Vessel"; } }
|
||||
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
|
||||
{
|
||||
base.OnGUI(pos, prop, label);
|
||||
if (MakeFoldout(prop, "m_Show"))
|
||||
{
|
||||
++EditorGUI.indentLevel;
|
||||
var shape = (Vessel.Shape)prop.FindPropertyRelative("m_Shape").intValue;
|
||||
PropertyField(prop, "m_Shape");
|
||||
PropertyField(prop, "m_ShapeWidth");
|
||||
PropertyField(prop, "m_Gap");
|
||||
PropertyTwoFiled(prop, "m_Center");
|
||||
PropertyField(prop, "m_BackgroundColor");
|
||||
PropertyField(prop, "m_Color");
|
||||
PropertyField(prop, "m_AutoColor");
|
||||
switch (shape)
|
||||
{
|
||||
case Vessel.Shape.Circle:
|
||||
PropertyField(prop, "m_Radius");
|
||||
PropertyField(prop, "m_Smoothness");
|
||||
break;
|
||||
case Vessel.Shape.Rect:
|
||||
PropertyField(prop, "m_Width");
|
||||
PropertyField(prop, "m_Height");
|
||||
PropertyField(prop, "m_CornerRadius");
|
||||
break;
|
||||
}
|
||||
--EditorGUI.indentLevel;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/XCharts/Editor/PropertyDrawers/VesselDrawer.cs.meta
Normal file
11
Assets/XCharts/Editor/PropertyDrawers/VesselDrawer.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 744a68155f2f349dc8fe26536ec83f80
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user