diff --git a/CHANGELOG-EN.md b/CHANGELOG-EN.md
index ed2bb9dc..9a9020f0 100644
--- a/CHANGELOG-EN.md
+++ b/CHANGELOG-EN.md
@@ -176,7 +176,7 @@
* (2019.11.02) 优化非配置参数变量命名和访问权限,简化`API`
* (2019.10.31) 发布`v1.0.2`版本
* (2019.10.31) 修复`prefab`预设制作报错的问题
-* (2019.10.31) 增加访问主题组件API:`BaseChart.themeInfo`
+* (2019.10.31) 增加访问主题组件API:`BaseChart.theme`
* (2019.10.26) 发布`v1.0.1`版本
* (2019.10.26) 修复版本检查功能在非运行时异常的问题
* (2019.10.26) 增加科学计数法显示数值的支持(查阅`forceENotation`参数)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 41bcf7a6..05bd67b3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -177,7 +177,7 @@
* (2019.11.02) 优化非配置参数变量命名和访问权限,简化`API`
* (2019.10.31) 发布`v1.0.2`版本
* (2019.10.31) 修复`prefab`预设制作报错的问题
-* (2019.10.31) 增加访问主题组件API:`BaseChart.themeInfo`
+* (2019.10.31) 增加访问主题组件API:`BaseChart.theme`
* (2019.10.26) 发布`v1.0.1`版本
* (2019.10.26) 修复版本检查功能在非运行时异常的问题
* (2019.10.26) 增加科学计数法显示数值的支持(查阅`forceENotation`参数)
diff --git a/Documentation/XChartsAPI.md b/Documentation/XChartsAPI.md
index a0f39b1c..26e7fd4c 100644
--- a/Documentation/XChartsAPI.md
+++ b/Documentation/XChartsAPI.md
@@ -6,7 +6,7 @@
## `BaseChart`
-* `BaseChart.themeInfo`:主题组件`ThemeInfo`。
+* `BaseChart.theme`:主题组件`ThemeInfo`。
* `BaseChart.title`:标题组件`Title`。
* `BaseChart.legend`:图例组件`Legend`。
* `BaseChart.tooltip`:提示框组件`Tooltip`。
@@ -25,6 +25,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()`:清除所有系列和图例数据,系列列表也会被清除。
@@ -67,17 +68,13 @@
## `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` 轴。
@@ -88,7 +85,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)`:设置可缓存的最大数据量。当数据量超过该值时,会自动删除第一个值再加入最新值。
@@ -105,11 +102,6 @@
* `BarChart.onPointerClickBar`:点击柱条回调。参数:`eventData`, `dataIndex`
-## `PieChart`
-
-* 继承自 `BaseChart`。
-
-* `PieChart.onPointerClickPie`:点击柱条回调。参数:`eventData`, `serieIndex`, `dataIndex`
## `RadarChart`
diff --git a/Documentation/XCharts配置项手册.md b/Documentation/XCharts配置项手册.md
index 6be1a744..e62d4d71 100644
--- a/Documentation/XCharts配置项手册.md
+++ b/Documentation/XCharts配置项手册.md
@@ -276,16 +276,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`
@@ -351,15 +354,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`。有以下三种类型:
@@ -407,11 +417,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` 设置类目数据。
@@ -518,7 +528,8 @@
* `type`:`Line`。
* `name`:系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
* `stack`:数据堆叠。同个类目轴上系列配置相同的 `stack` 值后,后一个系列的值会在前一个系列的值上相加。
-* `axisIndex`:使用的坐标轴轴的 `index`,在单个图表实例中存在多个坐标轴轴的时候有用。
+* `xAxisIndex`:使用的坐标轴X轴的 `index`,在单个图表实例中存在多个坐标轴的时候有用。
+* `yAxisIndex`:使用的坐标轴Y轴的 `index`,在单个图表实例中存在多个坐标轴的时候有用。
* `minShow`:系列显示数据的最小索引。
* `maxShow`:系列显示数据的最大索引。
* `maxCache`:系列中可缓存的最大数据量。默认为`0`没有限制,大于0时超过指定值会移除旧数据再插入新数据。
@@ -564,7 +575,8 @@
* `type`:`Bar`。
* `name`:系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
* `stack`:数据堆叠。同个类目轴上系列配置相同的 `stack` 值后,后一个系列的值会在前一个系列的值上相加。
-* `axisIndex`:使用的坐标轴轴的 `index`,在单个图表实例中存在多个坐标轴轴的时候有用。
+* `xAxisIndex`:使用的坐标轴X轴的 `index`,在单个图表实例中存在多个坐标轴的时候有用。
+* `yAxisIndex`:使用的坐标轴Y轴的 `index`,在单个图表实例中存在多个坐标轴的时候有用。
* `minShow`:系列显示数据的最小索引。
* `maxShow`:系列显示数据的最大索引。
* `maxCache`:系列中可缓存的最大数据量。默认为`0`没有限制,大于0时超过指定值会移除旧数据再插入新数据。
@@ -767,16 +779,13 @@
* `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`刻度上。
* `textLimit`:文本自适应 [TextLimit](#TextLimit)。只在类目轴中有效。
+* `textStyle`:文本样式 [TextStyle](#TextStyle)。
## `AxisLine`
@@ -797,11 +806,7 @@
* `Start`:坐标轴起始处。
* `Middle`:坐标轴中间。
* `End`:坐标轴末端。
-* `offset`:坐标轴名称与轴线之间的偏移。
-* `rotate`:坐标轴名字旋转,角度值。
-* `color`:坐标轴名称的文字颜色。
-* `fontSize`:坐标轴名称的文字大小。
-* `fontStyle`:坐标轴名称的文字风格。
+* `textStyle`:显示内容文本样式 [TextStyle](#TextStyle)。
## `AxisSplitLine`
@@ -919,15 +924,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`:折线。
@@ -940,6 +940,7 @@
* `border`:是否显示边框。
* `borderWidth`:边框宽度。
* `borderColor`:边框颜色。
+* `textStyle`:显示内容文本样式 [TextStyle](#TextStyle)。
## `SerieSymbol`
diff --git a/Documentation/xcharts-api-EN.md b/Documentation/xcharts-api-EN.md
index a0f39b1c..8e4658e6 100644
--- a/Documentation/xcharts-api-EN.md
+++ b/Documentation/xcharts-api-EN.md
@@ -6,7 +6,7 @@
## `BaseChart`
-* `BaseChart.themeInfo`:主题组件`ThemeInfo`。
+* `BaseChart.theme`:主题组件`ThemeInfo`。
* `BaseChart.title`:标题组件`Title`。
* `BaseChart.legend`:图例组件`Legend`。
* `BaseChart.tooltip`:提示框组件`Tooltip`。
@@ -67,17 +67,13 @@
## `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` 轴。
@@ -88,7 +84,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)`:设置可缓存的最大数据量。当数据量超过该值时,会自动删除第一个值再加入最新值。
diff --git a/Documentation/xcharts-configuration-EN.md b/Documentation/xcharts-configuration-EN.md
index 8f90b625..825f60f0 100644
--- a/Documentation/xcharts-configuration-EN.md
+++ b/Documentation/xcharts-configuration-EN.md
@@ -6,7 +6,7 @@
The translation work is still in progress.
-Main component:
+__Main component:__
* [Axis](#XAxis)
* [Background](#Background)
@@ -32,7 +32,7 @@ Main component:
* [Vessel](#Vessel)
* [VisualMap](#VisualMap)
-Sub component:
+__Sub component:__
* [AreaStyle](#AreaStyle)
* [AxisLabel](#AxisLabel)
@@ -128,7 +128,7 @@ Parameters:
* `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 text style of legend content [TextStyle](#TextStyle).
+* `textStyle`: The style of text [TextStyle](#TextStyle).
API:
@@ -275,16 +275,19 @@ Currently only the control 'X' axis is supported.
* `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.~~
-* `bottom`: Distance between dataZoom component and the bottom side of the container. bottom value is a instant pixel value like 10. [default: `10f`]
+* `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`]
-* `fontSize`: font size of datazoom label.
-* `fontStyle`: font style of datazoom label.
+* `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`
@@ -352,11 +355,18 @@ GaugePointer sub component. Settings related to gauge pointer.
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 `xAxises[0]` is `true` and `xAxises[1]` is `false`.
+* `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`.
@@ -411,7 +421,8 @@ Line chart serie.
* `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.
-* `axisIndex`: Index of axis to combine with, which is useful for multiple x axes in one chart.
+* `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.
@@ -431,7 +442,7 @@ Line chart serie.
* `largeThreshold`: 开启大数量优化的阈值。只有当开启了large并且数据量大于该阀值时才进入性能模式。
* `areaStyle`: 区域填充样式 [AreaStyle](#AreaStyle)。
* `symbol`: 标记的图形 [SerieSymbol](#SerieSymbol)。
-* `lineType`: 折线图样式类型。支持以下十种类型:
+* `lineType`: 折线图样式类型。支持以下十种类型:
* `Normal`: 普通折线图。
* `Smooth`: 平滑曲线。
* `SmoothDash`: 平滑虚线。
@@ -457,7 +468,8 @@ Line chart serie.
* `type`: `Bar`。
* `name`: 系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
* `stack`: 数据堆叠。同个类目轴上系列配置相同的 `stack` 值后,后一个系列的值会在前一个系列的值上相加。
-* `axisIndex`: 使用的坐标轴轴的 `index`,在单个图表实例中存在多个坐标轴轴的时候有用。
+* `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时超过指定值会移除旧数据再插入新数据。
@@ -492,7 +504,7 @@ Line chart serie.
* `show`: 系列是否显示在图表上。
* `type`: `Pie`。
* `name`: 系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
-* `pieRoseType`: 南丁格尔玫瑰图类型,支持以下类型:
+* `pieRoseType`: 南丁格尔玫瑰图类型,支持以下类型:
* `None`: 不展示成南丁格尔玫瑰图。
* `Radius`: 扇区圆心角展现数据的百分比,半径展现数据的大小。
* `Area`: 所有扇区圆心角相同,仅通过半径展现数据大小。
@@ -562,7 +574,7 @@ Line chart serie.
* `show`: 系列是否显示在图表上。
* `type`: `Gauge`。
* `name`: 系列名称。用于 `tooltip` 的显示,`legend` 的图例筛选。
-* `gaugeType`: 仪表盘类型,支持以下类型:
+* `gaugeType`: 仪表盘类型,支持以下类型:
* `Pointer`: 指针类型。
* `ProgressBar`: 进度条类型。
* `center`: 中心点坐标。当值为0-1的浮点数时表示百分比。
@@ -644,7 +656,7 @@ Line chart serie.
## `AreaStyle`
* `show`: 是否显示区域填充。
-* `origin`: 区域填充的起始位置 `AreaOrigin`。有以下三种填充方式:
+* `origin`: 区域填充的起始位置 `AreaOrigin`。有以下三种填充方式:
* `Auto`: 填充坐标轴轴线到数据间的区域。
* `Start`: 填充坐标轴底部到数据间的区域。
* `End`: 填充坐标轴顶部到数据间的区域。
@@ -660,16 +672,13 @@ Line chart serie.
* `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`刻度上。
* `textLimit`: 文本自适应 [TextLimit](#TextLimit)。只在类目轴中有效。
+* `textStyle`: The style of text [TextStyle](#TextStyle).
## `AxisLine`
@@ -686,15 +695,11 @@ Line chart serie.
* `show`: 是否显示坐标名称。
* `name`: 坐标轴名称。
-* `location`: 坐标轴名称的位置。支持以下类型:
+* `location`: 坐标轴名称的位置。支持以下类型:
* `Start`: 坐标轴起始处。
* `Middle`: 坐标轴中间。
* `End`: 坐标轴末端。
-* `offset`: 坐标轴名称与轴线之间的偏移。
-* `rotate`: 坐标轴名字旋转,角度值。
-* `color`: 坐标轴名称的文字颜色。
-* `fontSize`: 坐标轴名称的文字大小。
-* `fontStyle`: 坐标轴名称的文字风格。
+* `textStyle`: The style of text [TextStyle](#TextStyle).
## `AxisSplitLine`
@@ -742,7 +747,7 @@ Line chart serie.
## `LineArrow`
* `show`: 是否显示箭头。
-* `position`: 箭头显示位置。支持以下两种位置:
+* `position`: 箭头显示位置。支持以下两种位置:
* `End`: 末端显示。最后一个数据上显示箭头。
* `Start`: 起始端显示。第一个数据上显示箭头。
* `width`: 箭头宽。
@@ -802,7 +807,7 @@ Line chart serie.
## `SerieLabel`
* `show`: 是否显示文本标签。
-* `position`: 标签的位置。折线图时强制默认为 `Center`,支持以下 `5` 种位置:
+* `position`: 标签的位置。折线图时强制默认为 `Center`,支持以下 `5` 种位置:
* `Outside`: 饼图扇区外侧,通过视觉引导线连到相应的扇区。只在饼图种可用。
* `Inside`: 饼图扇区内部。只在饼图可用。
* `Center`: 在中心位置(折线图,柱状图,饼图)。
@@ -812,17 +817,12 @@ Line chart serie.
* `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`: 视觉引导线类型。支持以下几种类型:
+* `lineType`: 视觉引导线类型。支持以下几种类型:
* `BrokenLine`: 折线。
* `Curves`: 曲线。
* `HorizontalLine`: 水平线。
@@ -833,6 +833,7 @@ Line chart serie.
* `border`: 是否显示边框。
* `borderWidth`: 边框宽度。
* `borderColor`: 边框颜色。
+* `textStyle`: The style of text [TextStyle](#TextStyle).
## `SerieSymbol`
diff --git a/Editor/BarChartEditor.cs b/Editor/BarChartEditor.cs
index 354ab270..96435653 100644
--- a/Editor/BarChartEditor.cs
+++ b/Editor/BarChartEditor.cs
@@ -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,13 @@ namespace XCharts
protected override void OnEnable()
{
base.OnEnable();
- m_Target = (BarChart)target;
+ m_Chart = (BarChart)target;
}
protected override void OnEndInspectorGUI()
{
base.OnEndInspectorGUI();
- if (m_Target == null && target == null)
+ if (m_Chart == null && target == null)
{
return;
}
diff --git a/Editor/BaseChartEditor.cs b/Editor/BaseChartEditor.cs
index 5e9c1bbb..6da03eb9 100644
--- a/Editor/BaseChartEditor.cs
+++ b/Editor/BaseChartEditor.cs
@@ -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;
@@ -14,22 +14,24 @@ namespace XCharts
///
/// Editor class used to edit UI BaseChart.
///
-
[CustomEditor(typeof(BaseChart), false)]
public class BaseChartEditor : Editor
{
- protected BaseChart m_Target;
+ 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 +43,36 @@ namespace XCharts
private bool m_CheckWarning = false;
private StringBuilder sb = new StringBuilder();
+ private bool m_BaseFoldout;
+ protected bool m_ShowAllComponent;
+
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,50 +84,120 @@ 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");
+ if (m_BaseFoldout)
+ {
+ EditorGUILayout.PropertyField(m_Script);
+ EditorGUILayout.PropertyField(m_ChartName);
+ }
+ 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()
+ {
+ }
+
+ protected virtual void OnDebugInspectorGUI()
{
EditorGUILayout.Space();
EditorGUILayout.Space();
+ 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) EditorGUILayout.PropertyField(prop, true);
+ 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("Remove All Chart Object"))
{
- m_Target.RemoveChartObject();
+ m_Chart.RemoveChartObject();
}
if (GUILayout.Button("Check XCharts Update "))
{
@@ -130,7 +209,7 @@ namespace XCharts
if (GUILayout.Button("Check Warning"))
{
m_CheckWarning = true;
- m_Target.CheckWarning();
+ m_Chart.CheckWarning();
}
if (GUILayout.Button("Hide Warning"))
{
@@ -138,11 +217,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
{
@@ -156,11 +235,10 @@ namespace XCharts
if (GUILayout.Button("Check warning"))
{
m_CheckWarning = true;
- m_Target.CheckWarning();
+ m_Chart.CheckWarning();
}
}
EditorGUILayout.Space();
- EditorGUILayout.Space();
}
}
}
\ No newline at end of file
diff --git a/Editor/CoordinateChartEditor.cs b/Editor/CoordinateChartEditor.cs
index 257d9d2b..437b5f2e 100644
--- a/Editor/CoordinateChartEditor.cs
+++ b/Editor/CoordinateChartEditor.cs
@@ -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,41 @@ namespace XCharts
///
/// Editor class used to edit UI CoordinateChart.
///
-
[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");
+ 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 || m_Target is LineChart)
- {
- 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 +55,7 @@ namespace XCharts
{
if (GUILayout.Button("Covert XY Axis"))
{
- (m_Target as CoordinateChart).CovertXYAxis(0);
+ (m_Chart as CoordinateChart).CovertXYAxis(0);
}
}
}
diff --git a/Editor/GaugeChartEditor.cs b/Editor/GaugeChartEditor.cs
index a53cbd7f..a89de203 100644
--- a/Editor/GaugeChartEditor.cs
+++ b/Editor/GaugeChartEditor.cs
@@ -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,13 @@ namespace XCharts
///
/// Editor class used to edit UI GaugeChart.
///
-
[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();
+ m_Chart = (GaugeChart)target;
}
}
}
\ No newline at end of file
diff --git a/Editor/HeatmapChartEditor.cs b/Editor/HeatmapChartEditor.cs
index f71b1314..b1e81067 100644
--- a/Editor/HeatmapChartEditor.cs
+++ b/Editor/HeatmapChartEditor.cs
@@ -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,13 @@ namespace XCharts
///
/// Editor class used to edit UI HeatmapChart.
///
-
[CustomEditor(typeof(HeatmapChart), false)]
public class HeatmapChartEditor : CoordinateChartEditor
{
protected override void OnEnable()
{
base.OnEnable();
- m_Target = (HeatmapChart)target;
- }
-
- protected override void OnEndInspectorGUI()
- {
- base.OnEndInspectorGUI();
+ m_Chart = (HeatmapChart)target;
}
}
}
\ No newline at end of file
diff --git a/Editor/LineChartEditor.cs b/Editor/LineChartEditor.cs
index 80433772..d321bb74 100644
--- a/Editor/LineChartEditor.cs
+++ b/Editor/LineChartEditor.cs
@@ -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,13 @@ namespace XCharts
///
/// Editor class used to edit UI LineChart.
///
-
[CustomEditor(typeof(LineChart), false)]
public class LineChartEditor : CoordinateChartEditor
{
protected override void OnEnable()
{
base.OnEnable();
- m_Target = (LineChart)target;
+ m_Chart = (LineChart)target;
}
}
}
\ No newline at end of file
diff --git a/Editor/LiquidChartEditor.cs b/Editor/LiquidChartEditor.cs
index 874436da..cf985df9 100644
--- a/Editor/LiquidChartEditor.cs
+++ b/Editor/LiquidChartEditor.cs
@@ -16,19 +16,5 @@ namespace XCharts
[CustomEditor(typeof(LiquidChart), false)]
public class LiquidChartEditor : BaseChartEditor
{
- protected SerializedProperty m_Vessels;
-
- protected override void OnEnable()
- {
- base.OnEnable();
- m_Target = (LiquidChart)target;
- m_Vessels = serializedObject.FindProperty("m_Vessels");
- }
-
- protected override void OnStartInspectorGUI()
- {
- base.OnStartInspectorGUI();
- EditorGUILayout.PropertyField(m_Vessels, true);
- }
}
}
\ No newline at end of file
diff --git a/Editor/PieChartEditor.cs b/Editor/PieChartEditor.cs
index 897991cd..d410a4b7 100644
--- a/Editor/PieChartEditor.cs
+++ b/Editor/PieChartEditor.cs
@@ -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,13 @@ namespace XCharts
///
/// Editor class used to edit UI PieChart.
///
-
[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();
+ m_Chart = (PieChart)target;
}
}
}
\ No newline at end of file
diff --git a/Editor/PolarChartEditor.cs b/Editor/PolarChartEditor.cs
index 3c8e4d00..57b3b476 100644
--- a/Editor/PolarChartEditor.cs
+++ b/Editor/PolarChartEditor.cs
@@ -1,9 +1,9 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using UnityEditor;
@@ -12,29 +12,29 @@ namespace XCharts
///
/// Editor class used to edit UI PolarChart.
///
-
[CustomEditor(typeof(PolarChart), false)]
public class PolarChartEditor : BaseChartEditor
{
- protected SerializedProperty m_Polar;
- protected SerializedProperty m_RadiusAxis;
- protected SerializedProperty m_AngleAxis;
+ protected SerializedProperty m_Polars;
+ protected SerializedProperty m_RadiusAxes;
+ protected SerializedProperty m_AngleAxes;
protected override void OnEnable()
{
base.OnEnable();
- m_Target = (PolarChart)target;
- m_Polar = serializedObject.FindProperty("m_Polar");
- m_RadiusAxis = serializedObject.FindProperty("m_RadiusAxis");
- m_AngleAxis = serializedObject.FindProperty("m_AngleAxis");
+ 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();
- EditorGUILayout.PropertyField(m_Polar, true);
- EditorGUILayout.PropertyField(m_RadiusAxis, true);
- EditorGUILayout.PropertyField(m_AngleAxis, true);
+ var showAll = m_MultiComponentMode.boolValue;
+ BlockListField(showAll, m_Polars);
+ BlockListField(showAll, m_RadiusAxes);
+ BlockListField(showAll, m_AngleAxes);
}
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/AngleAxisDrawer.cs b/Editor/PropertyDrawers/AngleAxisDrawer.cs
deleted file mode 100644
index 233ddfc6..00000000
--- a/Editor/PropertyDrawers/AngleAxisDrawer.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
-
-using UnityEditor;
-using UnityEngine;
-
-namespace XCharts
-{
- [CustomPropertyDrawer(typeof(AngleAxis), true)]
- public class AngleAxisDrawer : AxisDrawer
- {
- protected override void DrawExtended(ref Rect drawRect, SerializedProperty prop)
- {
- SerializedProperty m_StartAngle = prop.FindPropertyRelative("m_StartAngle");
- SerializedProperty m_Clockwise = prop.FindPropertyRelative("m_Clockwise");
- EditorGUI.PropertyField(drawRect, m_StartAngle);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_Clockwise);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- }
-
- protected override string GetDisplayName(string displayName)
- {
- if (displayName.StartsWith("Element"))
- {
- displayName = displayName.Replace("Element", "Angle Axis");
- }
- return displayName;
- }
-
- protected override float GetExtendedHeight()
- {
- return 2 * EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- }
- }
-}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/AnimationDrawer.cs b/Editor/PropertyDrawers/AnimationDrawer.cs
index e8b59979..234fd137 100644
--- a/Editor/PropertyDrawers/AnimationDrawer.cs
+++ b/Editor/PropertyDrawers/AnimationDrawer.cs
@@ -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 m_AnimationModuleToggle = new Dictionary();
-
+ 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;
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/AreaStyleDrawer.cs b/Editor/PropertyDrawers/AreaStyleDrawer.cs
index 30863eea..d31e6509 100644
--- a/Editor/PropertyDrawers/AreaStyleDrawer.cs
+++ b/Editor/PropertyDrawers/AreaStyleDrawer.cs
@@ -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 m_AreaStyleToggle = new Dictionary();
-
+ 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;
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/AxisDrawer.cs b/Editor/PropertyDrawers/AxisDrawer.cs
index 8107432c..be0437b5 100644
--- a/Editor/PropertyDrawers/AxisDrawer.cs
+++ b/Editor/PropertyDrawers/AxisDrawer.cs
@@ -1,84 +1,53 @@
-/******************************************/
-/* */
-/* 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 m_AxisModuleToggle = new List();
- private List m_DataFoldout = new List();
- 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_Data = prop.FindPropertyRelative("m_Data");
+ 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;
+ PropertyField(prop, "m_LogBaseE");
EditorGUI.BeginChangeCheck();
- EditorGUI.PropertyField(drawRect, m_LogBase);
+ PropertyField(prop, "m_LogBase");
if (m_LogBase.floatValue <= 0 || m_LogBase.floatValue == 1)
{
m_LogBase.floatValue = 10;
}
EditorGUI.EndChangeCheck();
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
}
if (type == Axis.AxisType.Value)
{
- 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)
{
@@ -88,154 +57,136 @@ 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");
+ PropertyField(prop, "m_Inverse");
}
- EditorGUI.PropertyField(drawRect, m_SplitNumber);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ PropertyField(prop, "m_SplitNumber");
if (type == Axis.AxisType.Category)
{
- EditorGUI.PropertyField(drawRect, m_BoundaryGap);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ PropertyField(prop, "m_BoundaryGap");
}
else
{
- EditorGUI.PropertyField(drawRect, m_Interval);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ PropertyField(prop, "m_Interval");
}
- DrawExtended(ref drawRect, prop);
- 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);
+ 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");
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])
+ m_DrawRect.width = EditorGUIUtility.labelWidth + 10;
+ m_DataToggles[m_KeyName] = EditorGUI.Foldout(m_DrawRect, m_DataToggles[m_KeyName], "Data");
+ AddSingleLineHeight();
+ m_DrawRect.width = pos.width;
+ if (m_DataToggles[m_KeyName])
{
- ChartEditorHelper.MakeList(ref drawRect, ref m_DataSize, m_Data);
+ var height = m_Heights[m_KeyName];
+ ChartEditorHelper.MakeList(ref m_DrawRect, ref height, ref m_DataSize, m_Data);
+ m_Heights[m_KeyName] = height;
}
}
EditorGUI.indentLevel--;
}
}
+ }
- protected virtual void DrawExtended(ref Rect drawRect, SerializedProperty prop)
+ [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)
{
-
+ base.DrawExtendeds(prop);
+ PropertyField(prop, "m_StartAngle");
+ PropertyField(prop, "m_Clockwise");
}
+ }
- public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
+ [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)
{
- int index = InitToggle(prop);
- if (!m_AxisModuleToggle[index])
+ 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 += 0 * EditorGUIUtility.singleLineHeight + 0 * EditorGUIUtility.standardVerticalSpacing;
- }
- if (m_ShowJsonDataArea)
- {
- height += EditorGUIUtility.singleLineHeight * 3 + EditorGUIUtility.standardVerticalSpacing;
- }
- }
- else if (type == Axis.AxisType.Value)
- {
- 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;
- }
- }
- else if (type == Axis.AxisType.Log)
- {
- height += 1 * 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);
- height += GetExtendedHeight();
- return height;
+ ++EditorGUI.indentLevel;
+ PropertyField(prop, "m_Formatter");
+ PropertyField(prop, "m_Inside");
+ PropertyField(prop, "m_Interval");
+ PropertyField(prop, "m_Margin");
+ PropertyField(prop, "m_NumericFormatter");
+ PropertyField(prop, "m_ShowAsPositiveNumber");
+ PropertyField(prop, "m_OnZero");
+ PropertyField(prop, "m_TextLimit");
+ PropertyField(prop, "m_TextStyle");
+ PropertyField(prop, "m_OnZero");
+ PropertyField(prop, "m_OnZero");
+ --EditorGUI.indentLevel;
}
}
+ }
- protected virtual float GetExtendedHeight()
+ [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)
{
- return 0;
+ base.OnGUI(pos, prop, label);
+ if (MakeFoldout(prop, "m_Show"))
+ {
+ ++EditorGUI.indentLevel;
+ PropertyField(prop, "m_Name");
+ PropertyField(prop, "m_Location");
+ PropertyField(prop, "m_TextStyle");
+ --EditorGUI.indentLevel;
+ }
}
+ }
- private int InitToggle(SerializedProperty prop)
+ [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)
{
- 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_Color");
+ --EditorGUI.indentLevel;
}
- if (index >= m_AxisModuleToggle.Count)
- {
- m_AxisModuleToggle.Add(false);
- }
- return index;
}
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/AxisLabelDrawer.cs b/Editor/PropertyDrawers/AxisLabelDrawer.cs
deleted file mode 100644
index 017325ce..00000000
--- a/Editor/PropertyDrawers/AxisLabelDrawer.cs
+++ /dev/null
@@ -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 m_AxisLabelToggle = new Dictionary();
-
- 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;
- }
- }
-}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/AxisLineDrawer.cs b/Editor/PropertyDrawers/AxisLineDrawer.cs
deleted file mode 100644
index 7c7d05c8..00000000
--- a/Editor/PropertyDrawers/AxisLineDrawer.cs
+++ /dev/null
@@ -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 m_AxisLineToggle = new Dictionary();
-
- 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;
- }
- }
-}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/AxisNameDrawer.cs b/Editor/PropertyDrawers/AxisNameDrawer.cs
deleted file mode 100644
index de1f5d6f..00000000
--- a/Editor/PropertyDrawers/AxisNameDrawer.cs
+++ /dev/null
@@ -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 m_AxisNameToggle = new Dictionary();
-
- 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;
- }
- }
-}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/AxisSplitAreaDrawer.cs b/Editor/PropertyDrawers/AxisSplitAreaDrawer.cs
deleted file mode 100644
index ffb636ce..00000000
--- a/Editor/PropertyDrawers/AxisSplitAreaDrawer.cs
+++ /dev/null
@@ -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 m_SplitAreaToggle = new Dictionary();
-
- 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;
- }
- }
-}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/AxisSplitAreaDrawer.cs.meta b/Editor/PropertyDrawers/AxisSplitAreaDrawer.cs.meta
deleted file mode 100644
index 1490325c..00000000
--- a/Editor/PropertyDrawers/AxisSplitAreaDrawer.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 988570bd6485942da9879649ed4adb5b
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Editor/PropertyDrawers/AxisSplitLineDrawer.cs b/Editor/PropertyDrawers/AxisSplitLineDrawer.cs
deleted file mode 100644
index 0c758236..00000000
--- a/Editor/PropertyDrawers/AxisSplitLineDrawer.cs
+++ /dev/null
@@ -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 m_AxisSplitLineToggle = new Dictionary();
-
- 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;
- }
- }
-}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/AxisSplitLineDrawer.cs.meta b/Editor/PropertyDrawers/AxisSplitLineDrawer.cs.meta
deleted file mode 100644
index 5fc81841..00000000
--- a/Editor/PropertyDrawers/AxisSplitLineDrawer.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: af473e9aba20f4f168b8f83a4db13f81
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Editor/PropertyDrawers/AxisTickDrawer.cs b/Editor/PropertyDrawers/AxisTickDrawer.cs
deleted file mode 100644
index 53bc28b9..00000000
--- a/Editor/PropertyDrawers/AxisTickDrawer.cs
+++ /dev/null
@@ -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;
- }
- }
-}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/AxisTickDrawer.cs.meta b/Editor/PropertyDrawers/AxisTickDrawer.cs.meta
deleted file mode 100644
index 42093f1e..00000000
--- a/Editor/PropertyDrawers/AxisTickDrawer.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 7c7d45bc59dedc140b08f6e9d26ccd9d
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Editor/PropertyDrawers/BackgroundDrawer.cs b/Editor/PropertyDrawers/BackgroundDrawer.cs
index 26f24c08..67fd8144 100644
--- a/Editor/PropertyDrawers/BackgroundDrawer.cs
+++ b/Editor/PropertyDrawers/BackgroundDrawer.cs
@@ -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;
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/BasePropertyDrawer.cs b/Editor/PropertyDrawers/BasePropertyDrawer.cs
new file mode 100644
index 00000000..2034f3e3
--- /dev/null
+++ b/Editor/PropertyDrawers/BasePropertyDrawer.cs
@@ -0,0 +1,149 @@
+/************************************************/
+/* */
+/* 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 m_Heights = new Dictionary();
+ protected Dictionary m_PropToggles = new Dictionary();
+ protected Dictionary m_DataToggles = new Dictionary();
+
+ public virtual string ClassName { get { return ""; } }
+ public virtual List IngorePropertys { get { return new List { }; } }
+
+ 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 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 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;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/AxisLabelDrawer.cs.meta b/Editor/PropertyDrawers/BasePropertyDrawer.cs.meta
similarity index 83%
rename from Editor/PropertyDrawers/AxisLabelDrawer.cs.meta
rename to Editor/PropertyDrawers/BasePropertyDrawer.cs.meta
index b463817f..51f7228d 100644
--- a/Editor/PropertyDrawers/AxisLabelDrawer.cs.meta
+++ b/Editor/PropertyDrawers/BasePropertyDrawer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 88f38952bcbcd448dbe12f98e9c9110d
+guid: 4e5a04ce1f0a841b9b966a6d74de00e4
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Editor/PropertyDrawers/ComponentThemeDrawer.cs b/Editor/PropertyDrawers/ComponentThemeDrawer.cs
new file mode 100644
index 00000000..57e1bda4
--- /dev/null
+++ b/Editor/PropertyDrawers/ComponentThemeDrawer.cs
@@ -0,0 +1,186 @@
+/************************************************/
+/* */
+/* 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 IngorePropertys
+ {
+ get
+ {
+ return new List {
+ "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 IngorePropertys
+ {
+ get
+ {
+ return new List {
+ "m_TextBackgroundColor" ,
+ "m_LineLength",
+ "m_SplitLineLength",
+ };
+ }
+ }
+ 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");
+ --EditorGUI.indentLevel;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/AxisLineDrawer.cs.meta b/Editor/PropertyDrawers/ComponentThemeDrawer.cs.meta
similarity index 83%
rename from Editor/PropertyDrawers/AxisLineDrawer.cs.meta
rename to Editor/PropertyDrawers/ComponentThemeDrawer.cs.meta
index 6865bb9d..5ddef759 100644
--- a/Editor/PropertyDrawers/AxisLineDrawer.cs.meta
+++ b/Editor/PropertyDrawers/ComponentThemeDrawer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 866eefe266c3c47809d9dff3e89be0ab
+guid: c7937a2a7addd42299e960c5cfb75e34
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Editor/PropertyDrawers/DataZoomDrawer.cs b/Editor/PropertyDrawers/DataZoomDrawer.cs
index c42c8342..85967490 100644
--- a/Editor/PropertyDrawers/DataZoomDrawer.cs
+++ b/Editor/PropertyDrawers/DataZoomDrawer.cs
@@ -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");
+ PropertyField(prop, "m_XAxisIndexs");
+ PropertyField(prop, "m_YAxisIndexs");
+ PropertyField(prop, "m_TextStyle");
+ }
+ else
+ {
+ PropertyField(prop, "m_XAxisIndexs");
+ PropertyField(prop, "m_YAxisIndexs");
+ }
--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;
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/EmphasisStyleDrawer.cs b/Editor/PropertyDrawers/EmphasisStyleDrawer.cs
index ea2153ce..c31efb61 100644
--- a/Editor/PropertyDrawers/EmphasisStyleDrawer.cs
+++ b/Editor/PropertyDrawers/EmphasisStyleDrawer.cs
@@ -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 m_EmphasisToggle = new Dictionary();
-
+ 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;
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/GaugeAxisDrawer.cs b/Editor/PropertyDrawers/GaugeAxisDrawer.cs
index 672b9930..92472017 100644
--- a/Editor/PropertyDrawers/GaugeAxisDrawer.cs
+++ b/Editor/PropertyDrawers/GaugeAxisDrawer.cs
@@ -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 m_AxisLineToggle = new Dictionary();
+ 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;
}
}
}
diff --git a/Editor/PropertyDrawers/GaugeAxisLineDrawer.cs b/Editor/PropertyDrawers/GaugeAxisLineDrawer.cs
deleted file mode 100644
index 5222b97c..00000000
--- a/Editor/PropertyDrawers/GaugeAxisLineDrawer.cs
+++ /dev/null
@@ -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 m_Toggle = new Dictionary();
-
- 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;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/GaugeAxisLineDrawer.cs.meta b/Editor/PropertyDrawers/GaugeAxisLineDrawer.cs.meta
deleted file mode 100644
index b3d087ca..00000000
--- a/Editor/PropertyDrawers/GaugeAxisLineDrawer.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: eb7a86643ea2349c8ac2475ab81cb2f9
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Editor/PropertyDrawers/GaugeAxisLineStageColorDrawer.cs b/Editor/PropertyDrawers/GaugeAxisLineStageColorDrawer.cs
deleted file mode 100644
index babdea94..00000000
--- a/Editor/PropertyDrawers/GaugeAxisLineStageColorDrawer.cs
+++ /dev/null
@@ -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;
- }
- }
-}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/GaugeAxisLineStageColorDrawer.cs.meta b/Editor/PropertyDrawers/GaugeAxisLineStageColorDrawer.cs.meta
deleted file mode 100644
index 3f4bc31b..00000000
--- a/Editor/PropertyDrawers/GaugeAxisLineStageColorDrawer.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: cc7cae70713a74fb496ef686296bc46b
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Editor/PropertyDrawers/GaugeAxisSplitDrawer.cs b/Editor/PropertyDrawers/GaugeAxisSplitDrawer.cs
deleted file mode 100644
index 0f90567b..00000000
--- a/Editor/PropertyDrawers/GaugeAxisSplitDrawer.cs
+++ /dev/null
@@ -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 m_Toggle = new Dictionary();
-
- 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;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/GaugeAxisSplitDrawer.cs.meta b/Editor/PropertyDrawers/GaugeAxisSplitDrawer.cs.meta
deleted file mode 100644
index f2dc069b..00000000
--- a/Editor/PropertyDrawers/GaugeAxisSplitDrawer.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: d11eb7847e5c74746a570a7c9f6b339a
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Editor/PropertyDrawers/GaugeAxisTickDrawer.cs b/Editor/PropertyDrawers/GaugeAxisTickDrawer.cs
deleted file mode 100644
index e2d3b08d..00000000
--- a/Editor/PropertyDrawers/GaugeAxisTickDrawer.cs
+++ /dev/null
@@ -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 m_Toggle = new Dictionary();
-
- 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;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/GaugeAxisTickDrawer.cs.meta b/Editor/PropertyDrawers/GaugeAxisTickDrawer.cs.meta
deleted file mode 100644
index f4903e5e..00000000
--- a/Editor/PropertyDrawers/GaugeAxisTickDrawer.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 5f561506277b949c1b22116a3f3d3f4f
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Editor/PropertyDrawers/GaugePointerDrawer.cs b/Editor/PropertyDrawers/GaugePointerDrawer.cs
deleted file mode 100644
index b10f300c..00000000
--- a/Editor/PropertyDrawers/GaugePointerDrawer.cs
+++ /dev/null
@@ -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 m_Toggle = new Dictionary();
-
- 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;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/GaugePointerDrawer.cs.meta b/Editor/PropertyDrawers/GaugePointerDrawer.cs.meta
deleted file mode 100644
index c5b67446..00000000
--- a/Editor/PropertyDrawers/GaugePointerDrawer.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: a3d180de37dd24cfc9bcbb46f650c902
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Editor/PropertyDrawers/GridDrawer.cs b/Editor/PropertyDrawers/GridDrawer.cs
index 46cf7d05..1be2328a 100644
--- a/Editor/PropertyDrawers/GridDrawer.cs
+++ b/Editor/PropertyDrawers/GridDrawer.cs
@@ -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;
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/IconStyleDrawer.cs b/Editor/PropertyDrawers/IconStyleDrawer.cs
index b90773fc..e1e5dd1b 100644
--- a/Editor/PropertyDrawers/IconStyleDrawer.cs
+++ b/Editor/PropertyDrawers/IconStyleDrawer.cs
@@ -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 m_IconStyleToggle = new Dictionary();
-
+ 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;
- }
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/ItemStyleDrawer.cs b/Editor/PropertyDrawers/ItemStyleDrawer.cs
index 27ae3452..ee2d5e2a 100644
--- a/Editor/PropertyDrawers/ItemStyleDrawer.cs
+++ b/Editor/PropertyDrawers/ItemStyleDrawer.cs
@@ -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,89 +12,31 @@ using UnityEngine;
namespace XCharts
{
[CustomPropertyDrawer(typeof(ItemStyle), true)]
- public class ItemStyleDrawer : PropertyDrawer
+ public class ItemStyleDrawer : BasePropertyDrawer
{
- private int m_CornerRadius = 0;
- private Dictionary m_ItemStyleToggle = new Dictionary();
- private Dictionary m_CornerRadiusToggle = new Dictionary();
-
+ 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_ToColor2 = prop.FindPropertyRelative("m_ToColor2");
- 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_ToColor2);
- 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_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_Opacity");
+ PropertyField(prop, "m_TooltipFormatter");
+ PropertyField(prop, "m_NumericFormatter");
+ PropertyField(prop, "m_CornerRadius");
--EditorGUI.indentLevel;
}
}
-
- public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
- {
- float height = 0;
- if (ChartEditorHelper.IsToggle(m_ItemStyleToggle, prop))
- {
- height += 15 * EditorGUIUtility.singleLineHeight + 14 * 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;
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/LegendDrawer.cs b/Editor/PropertyDrawers/LegendDrawer.cs
index 87ec617f..b7c3723b 100644
--- a/Editor/PropertyDrawers/LegendDrawer.cs
+++ b/Editor/PropertyDrawers/LegendDrawer.cs
@@ -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,27 @@ 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_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");
+ PropertyField(prop, "m_Icons");
--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;
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/LineArrowDrawer.cs b/Editor/PropertyDrawers/LineArrowDrawer.cs
index 82240d38..ebbc3d2c 100644
--- a/Editor/PropertyDrawers/LineArrowDrawer.cs
+++ b/Editor/PropertyDrawers/LineArrowDrawer.cs
@@ -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 m_LineArrowToggle = new Dictionary();
-
+ 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;
}
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/LineDrawer.cs b/Editor/PropertyDrawers/LineDrawer.cs
new file mode 100644
index 00000000..d8c29447
--- /dev/null
+++ b/Editor/PropertyDrawers/LineDrawer.cs
@@ -0,0 +1,94 @@
+/************************************************/
+/* */
+/* 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_Interval");
+ PropertyField(prop, "m_Inside");
+ }
+ }
+
+ [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");
+ }
+ }
+}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/AngleAxisDrawer.cs.meta b/Editor/PropertyDrawers/LineDrawer.cs.meta
similarity index 83%
rename from Editor/PropertyDrawers/AngleAxisDrawer.cs.meta
rename to Editor/PropertyDrawers/LineDrawer.cs.meta
index 993985d5..5830eeb6 100644
--- a/Editor/PropertyDrawers/AngleAxisDrawer.cs.meta
+++ b/Editor/PropertyDrawers/LineDrawer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 521ea44136ea74a2f82a4c0c46edfd32
+guid: 2e69f60c7d200439abcf3407c15f8c4d
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Editor/PropertyDrawers/LineStyleDrawer.cs b/Editor/PropertyDrawers/LineStyleDrawer.cs
index e103c5e0..378e3157 100644
--- a/Editor/PropertyDrawers/LineStyleDrawer.cs
+++ b/Editor/PropertyDrawers/LineStyleDrawer.cs
@@ -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,54 +12,23 @@ using UnityEngine;
namespace XCharts
{
[CustomPropertyDrawer(typeof(LineStyle), true)]
- public class LineStyleDrawer : PropertyDrawer
+ public class LineStyleDrawer : BasePropertyDrawer
{
- private Dictionary m_LineStyleToggle = new Dictionary();
-
+ 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_ToColor = prop.FindPropertyRelative("m_ToColor");
- SerializedProperty m_ToColor2 = prop.FindPropertyRelative("m_ToColor2");
- 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_ToColor);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_ToColor2);
- 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 += 7 * EditorGUIUtility.singleLineHeight + 6 * EditorGUIUtility.standardVerticalSpacing;
- }
- else
- {
- height += 1 * EditorGUIUtility.singleLineHeight + 1 * EditorGUIUtility.standardVerticalSpacing;
- }
- return height;
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/LocationDrawer.cs b/Editor/PropertyDrawers/LocationDrawer.cs
index b8819f2a..34e2027b 100644
--- a/Editor/PropertyDrawers/LocationDrawer.cs
+++ b/Editor/PropertyDrawers/LocationDrawer.cs
@@ -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;
+ }
}
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/PolarDrawer.cs b/Editor/PropertyDrawers/PolarDrawer.cs
index 3be62a3c..4f721b62 100644
--- a/Editor/PropertyDrawers/PolarDrawer.cs
+++ b/Editor/PropertyDrawers/PolarDrawer.cs
@@ -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,39 +11,20 @@ using UnityEngine;
namespace XCharts
{
[CustomPropertyDrawer(typeof(Polar), true)]
- public class PolarDrawer : PropertyDrawer
+ public class PolarDrawer : BasePropertyDrawer
{
- private bool m_PolarModuleToggle = false;
-
+ public override string ClassName { get { return "Polar"; } }
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_Center = prop.FindPropertyRelative("m_Center");
- SerializedProperty m_Radius = prop.FindPropertyRelative("m_Radius");
- SerializedProperty m_BackgroundColor = prop.FindPropertyRelative("m_BackgroundColor");
-
- ChartEditorHelper.MakeFoldout(ref drawRect, ref m_PolarModuleToggle, "Polar", show);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- if (m_PolarModuleToggle)
+ base.OnGUI(pos, prop, label);
+ if (MakeFoldout(prop, "m_Show"))
{
- EditorGUI.indentLevel++;
- ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Center, "Center");
- EditorGUI.PropertyField(drawRect, m_Radius);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_BackgroundColor);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.indentLevel--;
+ ++EditorGUI.indentLevel;
+ PropertyTwoFiled(prop, "m_Center");
+ PropertyField(prop, "m_Radius");
+ PropertyField(prop, "m_BackgroundColor");
+ --EditorGUI.indentLevel;
}
}
-
- public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
- {
- if (m_PolarModuleToggle)
- return 4 * EditorGUIUtility.singleLineHeight + 3 * EditorGUIUtility.standardVerticalSpacing;
- else
- return EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/RadarDrawer.cs b/Editor/PropertyDrawers/RadarDrawer.cs
index 26474946..a3dc5493 100644
--- a/Editor/PropertyDrawers/RadarDrawer.cs
+++ b/Editor/PropertyDrawers/RadarDrawer.cs
@@ -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,129 +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;
- SerializedProperty m_IsAxisTooltip;
-
- private Dictionary m_RadarModuleToggle = new Dictionary();
- private Dictionary m_IndicatorToggle = new Dictionary();
- 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");
- m_IsAxisTooltip = prop.FindPropertyRelative("m_IsAxisTooltip");
- }
-
+ 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_IsAxisTooltip);
- 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 += 9;
- 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;
}
}
}
diff --git a/Editor/PropertyDrawers/RadarIndicatorDrawer.cs b/Editor/PropertyDrawers/RadarIndicatorDrawer.cs
deleted file mode 100644
index 3330775e..00000000
--- a/Editor/PropertyDrawers/RadarIndicatorDrawer.cs
+++ /dev/null
@@ -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 m_RadarModuleToggle = new Dictionary();
-
- 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;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/RadarIndicatorDrawer.cs.meta b/Editor/PropertyDrawers/RadarIndicatorDrawer.cs.meta
deleted file mode 100644
index 4b144235..00000000
--- a/Editor/PropertyDrawers/RadarIndicatorDrawer.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 7fb5d2a98871919459956dc252632435
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Editor/PropertyDrawers/RadiusAxisDrawer.cs b/Editor/PropertyDrawers/RadiusAxisDrawer.cs
deleted file mode 100644
index 3b86e7f6..00000000
--- a/Editor/PropertyDrawers/RadiusAxisDrawer.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
-
-using UnityEditor;
-
-namespace XCharts
-{
- [CustomPropertyDrawer(typeof(RadiusAxis), true)]
- public class RadiusAxisDrawer : AxisDrawer
- {
- protected override string GetDisplayName(string displayName)
- {
- if (displayName.StartsWith("Element"))
- {
- displayName = displayName.Replace("Element", "Radius Axis");
- }
- return displayName;
- }
- }
-}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/RadiusAxisDrawer.cs.meta b/Editor/PropertyDrawers/RadiusAxisDrawer.cs.meta
deleted file mode 100644
index 9d0b08e7..00000000
--- a/Editor/PropertyDrawers/RadiusAxisDrawer.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 433e6c679c39c4bf988a0447fd2e3775
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Editor/PropertyDrawers/SerieDrawer.cs b/Editor/PropertyDrawers/SerieDrawer.cs
index c7cb36bc..685dd74d 100644
--- a/Editor/PropertyDrawers/SerieDrawer.cs
+++ b/Editor/PropertyDrawers/SerieDrawer.cs
@@ -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;
@@ -18,6 +18,7 @@ namespace XCharts
private List m_DataFoldout = new List();
private bool m_ShowJsonDataArea = false;
private string m_JsonDataAreaText;
+ private bool m_IsPolar = false;
public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
{
@@ -28,9 +29,12 @@ namespace XCharts
SerializedProperty name = prop.FindPropertyRelative("m_Name");
SerializedProperty stack = prop.FindPropertyRelative("m_Stack");
SerializedProperty m_AxisIndex = prop.FindPropertyRelative("m_AxisIndex");
+ SerializedProperty m_XAxisIndex = prop.FindPropertyRelative("m_XAxisIndex");
+ SerializedProperty m_YAxisIndex = prop.FindPropertyRelative("m_YAxisIndex");
SerializedProperty m_RadarType = prop.FindPropertyRelative("m_RadarType");
SerializedProperty m_RadarIndex = prop.FindPropertyRelative("m_RadarIndex");
SerializedProperty m_VesselIndex = prop.FindPropertyRelative("m_VesselIndex");
+ SerializedProperty m_PolarIndex = prop.FindPropertyRelative("m_PolarIndex");
SerializedProperty m_MinShow = prop.FindPropertyRelative("m_MinShow");
SerializedProperty m_MaxShow = prop.FindPropertyRelative("m_MaxShow");
SerializedProperty m_MaxCache = prop.FindPropertyRelative("m_MaxCache");
@@ -90,7 +94,7 @@ namespace XCharts
var toggle = ChartEditorHelper.MakeFoldout(ref drawRect, ref m_SerieModuleToggle, prop, moduleName, show);
if (!toggle)
{
- var orderButton = 46;
+ var orderButton = 48;
var gap = 4;
drawRect.x += EditorGUIUtility.labelWidth + gap;
drawRect.width = pos.width - drawRect.x + ChartEditorHelper.BOOL_WIDTH - orderButton;
@@ -99,8 +103,9 @@ namespace XCharts
}
else
{
+ var chart = prop.serializedObject.targetObject as BaseChart;
+ m_IsPolar = chart is PolarChart;
var serieType = (SerieType)type.enumValueIndex;
-
++EditorGUI.indentLevel;
drawRect.x = pos.x;
drawRect.width = pos.width;
@@ -115,8 +120,18 @@ namespace XCharts
case SerieType.Line:
EditorGUI.PropertyField(drawRect, stack);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_AxisIndex);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ if (m_IsPolar)
+ {
+ EditorGUI.PropertyField(drawRect, m_PolarIndex);
+ drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ }
+ else
+ {
+ EditorGUI.PropertyField(drawRect, m_XAxisIndex);
+ drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ EditorGUI.PropertyField(drawRect, m_YAxisIndex);
+ drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ }
EditorGUI.PropertyField(drawRect, m_MinShow);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_MaxShow);
@@ -164,8 +179,18 @@ namespace XCharts
case SerieType.Bar:
EditorGUI.PropertyField(drawRect, stack);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_AxisIndex);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ if (m_IsPolar)
+ {
+ EditorGUI.PropertyField(drawRect, m_PolarIndex);
+ drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ }
+ else
+ {
+ EditorGUI.PropertyField(drawRect, m_XAxisIndex);
+ drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ EditorGUI.PropertyField(drawRect, m_YAxisIndex);
+ drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ }
EditorGUI.PropertyField(drawRect, m_MinShow);
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
EditorGUI.PropertyField(drawRect, m_MaxShow);
@@ -352,27 +377,35 @@ namespace XCharts
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;
+ drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
if (m_DataFoldout[index])
{
EditorGUI.indentLevel++;
float nameWid = 45;
#if UNITY_2019_3_OR_NEWER
- var gap = 2;
- var namegap = 3;
+ var gap = 2;
+ var namegap = 3;
#else
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 (XChartsSettings.editorBlockEnable)
+ {
+ nameRect.x += ChartEditorHelper.BLOCK_WIDTH;
+ }
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;
@@ -546,7 +579,7 @@ namespace XCharts
switch (serieType)
{
case SerieType.Line:
- height += 19 * EditorGUIUtility.singleLineHeight + 18 * EditorGUIUtility.standardVerticalSpacing;
+ height += 20 * EditorGUIUtility.singleLineHeight + 19 * EditorGUIUtility.standardVerticalSpacing;
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Symbol"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_LineStyle"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_LineArrow"));
@@ -557,7 +590,7 @@ namespace XCharts
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Animation"));
break;
case SerieType.Bar:
- height += 21 * EditorGUIUtility.singleLineHeight + 20 * EditorGUIUtility.standardVerticalSpacing;
+ height += 22 * EditorGUIUtility.singleLineHeight + 21 * EditorGUIUtility.standardVerticalSpacing;
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_ItemStyle"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Label"));
height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Emphasis"));
diff --git a/Editor/PropertyDrawers/SerieLabelDrawer.cs b/Editor/PropertyDrawers/SerieLabelDrawer.cs
index f93a9aae..f9e9c34c 100644
--- a/Editor/PropertyDrawers/SerieLabelDrawer.cs
+++ b/Editor/PropertyDrawers/SerieLabelDrawer.cs
@@ -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,112 +12,37 @@ using UnityEngine;
namespace XCharts
{
[CustomPropertyDrawer(typeof(SerieLabel), true)]
- public class SerieLabelDrawer : PropertyDrawer
+ public class SerieLabelDrawer : BasePropertyDrawer
{
- private Dictionary m_SerieLabelToggle = new Dictionary();
-
+ 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_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;
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/SerieSymbolDrawer.cs b/Editor/PropertyDrawers/SerieSymbolDrawer.cs
index 557d211a..db7f3dde 100644
--- a/Editor/PropertyDrawers/SerieSymbolDrawer.cs
+++ b/Editor/PropertyDrawers/SerieSymbolDrawer.cs
@@ -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 m_SerieSymbolToggle = new Dictionary();
-
+ 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;
- }
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/SeriesDrawer.cs b/Editor/PropertyDrawers/SeriesDrawer.cs
index b871fab0..c6acd9f5 100644
--- a/Editor/PropertyDrawers/SeriesDrawer.cs
+++ b/Editor/PropertyDrawers/SeriesDrawer.cs
@@ -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;
@@ -43,7 +43,7 @@ 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)
diff --git a/Editor/PropertyDrawers/SettingsDrawer.cs b/Editor/PropertyDrawers/SettingsDrawer.cs
index b7c24aef..016492be 100644
--- a/Editor/PropertyDrawers/SettingsDrawer.cs
+++ b/Editor/PropertyDrawers/SettingsDrawer.cs
@@ -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,30 @@ 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_MaxPainter");
+ PropertyField(prop, "m_LineSmoothStyle");
+ PropertyField(prop, "m_LineSmoothness");
+ PropertyField(prop, "m_LineSegmentDistance");
+ PropertyField(prop, "m_CicleSmoothness");
+
--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;
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/TextLimitDrawer.cs b/Editor/PropertyDrawers/TextLimitDrawer.cs
index bfc52500..eebdc47f 100644
--- a/Editor/PropertyDrawers/TextLimitDrawer.cs
+++ b/Editor/PropertyDrawers/TextLimitDrawer.cs
@@ -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,42 +12,20 @@ using UnityEngine;
namespace XCharts
{
[CustomPropertyDrawer(typeof(TextLimit), true)]
- public class TextLimitDrawer : PropertyDrawer
+ public class TextLimitDrawer : BasePropertyDrawer
{
- private Dictionary m_TextLimitToggle = new Dictionary();
-
+ 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_LimitSuffix");
--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;
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/TextStyleDrawer.cs b/Editor/PropertyDrawers/TextStyleDrawer.cs
index 1aa7831c..dfddb82f 100644
--- a/Editor/PropertyDrawers/TextStyleDrawer.cs
+++ b/Editor/PropertyDrawers/TextStyleDrawer.cs
@@ -1,71 +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;
+#if dUI_TextMeshPro
+using TMPro;
+#endif
namespace XCharts
{
[CustomPropertyDrawer(typeof(TextStyle), true)]
- public class TextStyleDrawer : PropertyDrawer
+ public class TextStyleDrawer : BasePropertyDrawer
{
- private Dictionary m_TextStyleToggle = new Dictionary();
-
+ 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");
+#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;
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/ThemeDrawer.cs b/Editor/PropertyDrawers/ThemeDrawer.cs
new file mode 100644
index 00000000..9f126b46
--- /dev/null
+++ b/Editor/PropertyDrawers/ThemeDrawer.cs
@@ -0,0 +1,182 @@
+/************************************************/
+/* */
+/* 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
+ {
+ private bool m_ThemeModuleToggle = false;
+ public override string ClassName { get { return "Theme"; } }
+ public override void OnGUI(Rect pos, SerializedProperty prop, GUIContent label)
+ {
+ if (prop.objectReferenceValue == null)
+ {
+ EditorGUI.ObjectField(pos, prop, new GUIContent("Theme"));
+ return;
+ }
+ base.OnGUI(pos, prop, label);
+ var defaultWidth = pos.width;
+ var defaultX = pos.x;
+ var btnWidth = 45;
+ ChartEditorHelper.MakeFoldout(ref m_DrawRect, ref m_ThemeModuleToggle, "Theme");
+ m_Heights[m_KeyName] += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ if (m_ThemeModuleToggle)
+ {
+ m_DrawRect.x = defaultX + defaultWidth - 2 * btnWidth - 2;
+ m_DrawRect.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(m_DrawRect, new GUIContent("Reset", "Reset to theme default color")))
+ {
+ chart.theme.ResetTheme();
+ chart.RefreshAllComponent();
+ }
+ m_DrawRect.x = defaultX + defaultWidth - btnWidth;
+ m_DrawRect.width = btnWidth;
+ if (GUI.Button(m_DrawRect, new GUIContent("Export", "Export theme to asset for a new theme")))
+ {
+ ExportThemeWindow.target = chart;
+ EditorWindow.GetWindow(typeof(ExportThemeWindow));
+ }
+
+ var data = (ScriptableObject)prop.objectReferenceValue;
+ SerializedObject serializedObject = new SerializedObject(data);
+ SerializedProperty newProp = serializedObject.GetIterator();
+ float y = pos.y + EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ ++EditorGUI.indentLevel;
+
+ var chartNameList = XChartsMgr.GetAllThemeNames();
+ var lastIndex = chartNameList.IndexOf(chart.theme.themeName);
+ var selectedIndex = EditorGUI.Popup(new Rect(pos.x, y, pos.width, EditorGUIUtility.singleLineHeight),
+ "Theme", lastIndex, chartNameList.ToArray());
+ m_Heights[m_KeyName] += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ if (lastIndex != selectedIndex)
+ {
+ GUI.changed = true;
+ XChartsMgr.SwitchTheme(chart, chartNameList[selectedIndex]);
+ }
+ if (newProp.NextVisible(true))
+ {
+ do
+ {
+ if (newProp.name == "m_Script") continue;
+ if (newProp.name == "m_ThemeName") continue;
+ if (newProp.name == "m_Theme") continue;
+ AddPropertyField(pos, newProp, ref y);
+ } while (newProp.NextVisible(false));
+ }
+ if (GUI.changed)
+ {
+ chart.RefreshAllComponent();
+ serializedObject.ApplyModifiedProperties();
+ }
+ if (chart.theme.font != lastFont)
+ {
+ chart.theme.SyncFontToSubComponent();
+ }
+#if dUI_TextMeshPro
+ if (chart.theme.tmpFont != lastTMPFont)
+ {
+ chart.theme.SyncTMPFontToSubComponent();
+ }
+#endif
+ --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(XChartsMgr.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 (XChartsMgr.ContainsTheme(m_ChartName))
+ {
+ ShowNotification(new GUIContent("ERROR:The name you entered is already in use!"));
+ }
+ else if (IsAssetsExist(XChartsMgr.GetThemeAssetPath(m_ChartName)))
+ {
+ ShowNotification(new GUIContent("ERROR:The asset is exist! \npath="
+ + XChartsMgr.GetThemeAssetPath(m_ChartName)), 5);
+ }
+ else
+ {
+ XChartsMgr.ExportTheme(target.theme, m_ChartName);
+ ShowNotification(new GUIContent("SUCCESS:The theme is exported. \npath="
+ + XChartsMgr.GetThemeAssetPath(m_ChartName)), 5);
+ }
+ }
+ }
+
+ private bool IsAssetsExist(string path)
+ {
+ return File.Exists(Application.dataPath + "/../" + path);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/AxisNameDrawer.cs.meta b/Editor/PropertyDrawers/ThemeDrawer.cs.meta
similarity index 83%
rename from Editor/PropertyDrawers/AxisNameDrawer.cs.meta
rename to Editor/PropertyDrawers/ThemeDrawer.cs.meta
index 128a0c95..107eab6b 100644
--- a/Editor/PropertyDrawers/AxisNameDrawer.cs.meta
+++ b/Editor/PropertyDrawers/ThemeDrawer.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 93f4873273d9c4d76bd651c8d774637f
+guid: 704e7c2793bca4050821c6e0756c8316
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Editor/PropertyDrawers/ThemeInfoDrawer.cs b/Editor/PropertyDrawers/ThemeInfoDrawer.cs
deleted file mode 100644
index a96a69b9..00000000
--- a/Editor/PropertyDrawers/ThemeInfoDrawer.cs
+++ /dev/null
@@ -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;
- }
-
- }
- }
-}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/ThemeInfoDrawer.cs.meta b/Editor/PropertyDrawers/ThemeInfoDrawer.cs.meta
deleted file mode 100644
index bcc58b44..00000000
--- a/Editor/PropertyDrawers/ThemeInfoDrawer.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: bcac1baa719179549b24d7056f7e0cb5
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Editor/PropertyDrawers/TitleDrawer.cs b/Editor/PropertyDrawers/TitleDrawer.cs
index 0b774860..ae48e56e 100644
--- a/Editor/PropertyDrawers/TitleDrawer.cs
+++ b/Editor/PropertyDrawers/TitleDrawer.cs
@@ -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;
}
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/TitleStyleDrawer.cs b/Editor/PropertyDrawers/TitleStyleDrawer.cs
index 28cedfa9..43af13d3 100644
--- a/Editor/PropertyDrawers/TitleStyleDrawer.cs
+++ b/Editor/PropertyDrawers/TitleStyleDrawer.cs
@@ -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 m_TitleStyleToggle = new Dictionary();
-
+ 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;
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/TooltipDrawer.cs b/Editor/PropertyDrawers/TooltipDrawer.cs
index 3b440467..f93ca84f 100644
--- a/Editor/PropertyDrawers/TooltipDrawer.cs
+++ b/Editor/PropertyDrawers/TooltipDrawer.cs
@@ -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,82 +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");
- SerializedProperty m_Offset = prop.FindPropertyRelative("m_Offset");
-
- 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_Offset);
- drawRect.y += EditorGUI.GetPropertyHeight(m_Offset);
- 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_Offset")) +
- EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_LineStyle")) +
- EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_TextStyle"));
- else
- return EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/VesselDrawer.cs b/Editor/PropertyDrawers/VesselDrawer.cs
index 782c05de..c2bbdf48 100644
--- a/Editor/PropertyDrawers/VesselDrawer.cs
+++ b/Editor/PropertyDrawers/VesselDrawer.cs
@@ -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,58 +11,26 @@ using UnityEngine;
namespace XCharts
{
[CustomPropertyDrawer(typeof(Vessel), true)]
- public class VesselDrawer : PropertyDrawer
+ public class VesselDrawer : BasePropertyDrawer
{
- private bool m_VesselModuleToggle = false;
-
+ public override string ClassName { get { return "Vessel"; } }
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_Shape = prop.FindPropertyRelative("m_Shape");
- SerializedProperty m_Center = prop.FindPropertyRelative("m_Center");
- SerializedProperty m_Radius = prop.FindPropertyRelative("m_Radius");
- SerializedProperty m_ShapeWidth = prop.FindPropertyRelative("m_ShapeWidth");
- SerializedProperty m_Gap = prop.FindPropertyRelative("m_Gap");
- SerializedProperty m_Smoothness = prop.FindPropertyRelative("m_Smoothness");
- SerializedProperty m_AutoColor = prop.FindPropertyRelative("m_AutoColor");
- SerializedProperty m_Color = prop.FindPropertyRelative("m_Color");
- SerializedProperty m_BackgroundColor = prop.FindPropertyRelative("m_BackgroundColor");
-
- int index = ChartEditorHelper.GetIndexFromPath(prop);
- ChartEditorHelper.MakeFoldout(ref drawRect, ref m_VesselModuleToggle, "Vessel " + index, show);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- if (m_VesselModuleToggle)
+ base.OnGUI(pos, prop, label);
+ if (MakeFoldout(prop, "m_Show"))
{
- EditorGUI.indentLevel++;
- EditorGUI.PropertyField(drawRect, m_Shape);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_ShapeWidth);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_Gap);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Center, "Center");
- EditorGUI.PropertyField(drawRect, m_Radius);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_BackgroundColor);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_Color);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_AutoColor);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_Smoothness);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.indentLevel--;
+ ++EditorGUI.indentLevel;
+ PropertyField(prop, "m_Shape");
+ PropertyField(prop, "m_ShapeWidth");
+ PropertyField(prop, "m_Gap");
+ PropertyTwoFiled(prop, "m_Center");
+ PropertyField(prop, "m_Radius");
+ PropertyField(prop, "m_BackgroundColor");
+ PropertyField(prop, "m_Color");
+ PropertyField(prop, "m_AutoColor");
+ PropertyField(prop, "m_Smoothness");
+ --EditorGUI.indentLevel;
}
}
-
- public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
- {
- if (m_VesselModuleToggle)
- return 10 * EditorGUIUtility.singleLineHeight + 9 * EditorGUIUtility.standardVerticalSpacing;
- else
- return EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/VisualMapDrawer.cs b/Editor/PropertyDrawers/VisualMapDrawer.cs
index aee7ca82..d2110e9f 100644
--- a/Editor/PropertyDrawers/VisualMapDrawer.cs
+++ b/Editor/PropertyDrawers/VisualMapDrawer.cs
@@ -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,140 +11,41 @@ using UnityEngine;
namespace XCharts
{
[CustomPropertyDrawer(typeof(VisualMap), true)]
- public class VisualMapDrawer : PropertyDrawer
+ public class VisualMapDrawer : BasePropertyDrawer
{
- private bool m_VisualMapModuleToggle = false;
- private bool m_InRangeFoldout;
- private bool m_OutOfRangeFoldout;
- private int m_InRangeSize;
- private int m_OutOfRangeSize;
-
+ public override string ClassName { get { return "VisualMap"; } }
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_Type = prop.FindPropertyRelative("m_Type");
- SerializedProperty m_Show = prop.FindPropertyRelative("m_Show");
- SerializedProperty m_SelectedMode = prop.FindPropertyRelative("m_SelectedMode");
- SerializedProperty m_Min = prop.FindPropertyRelative("m_Min");
- SerializedProperty m_Max = prop.FindPropertyRelative("m_Max");
- SerializedProperty m_Range = prop.FindPropertyRelative("m_Range");
- SerializedProperty m_Text = prop.FindPropertyRelative("m_Text");
- // SerializedProperty m_TextGap = prop.FindPropertyRelative("m_TextGap");
- SerializedProperty m_SplitNumber = prop.FindPropertyRelative("m_SplitNumber");
- SerializedProperty m_Calculable = prop.FindPropertyRelative("m_Calculable");
- SerializedProperty m_ItemWidth = prop.FindPropertyRelative("m_ItemWidth");
- SerializedProperty m_ItemHeight = prop.FindPropertyRelative("m_ItemHeight");
- SerializedProperty m_BorderWidth = prop.FindPropertyRelative("m_BorderWidth");
- SerializedProperty m_Dimension = prop.FindPropertyRelative("m_Dimension");
- SerializedProperty m_HoverLink = prop.FindPropertyRelative("m_HoverLink");
- SerializedProperty m_Orient = prop.FindPropertyRelative("m_Orient");
- SerializedProperty m_Location = prop.FindPropertyRelative("m_Location");
- SerializedProperty m_InRange = prop.FindPropertyRelative("m_InRange");
- SerializedProperty m_AutoMinMax = prop.FindPropertyRelative("m_AutoMinMax");
- SerializedProperty m_Direction = prop.FindPropertyRelative("m_Direction");
- SerializedProperty m_OutOfRange = prop.FindPropertyRelative("m_OutOfRange");
-
- ChartEditorHelper.MakeFoldout(ref drawRect, ref m_VisualMapModuleToggle, "Visual Map", m_Enable);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- if (m_VisualMapModuleToggle)
+ base.OnGUI(pos, prop, label);
+ if (MakeFoldout(prop, "m_Enable"))
{
++EditorGUI.indentLevel;
- EditorGUI.PropertyField(drawRect, m_Type);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_Direction);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_AutoMinMax);
- 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_SplitNumber);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_Dimension);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
-
- m_InRangeFoldout = EditorGUI.Foldout(drawRect, m_InRangeFoldout, "InRange");
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- if (m_InRangeFoldout)
+ PropertyField(prop, "m_Type");
+ PropertyField(prop, "m_Direction");
+ PropertyField(prop, "m_AutoMinMax");
+ PropertyField(prop, "m_Min");
+ PropertyField(prop, "m_Max");
+ PropertyField(prop, "m_SplitNumber");
+ PropertyField(prop, "m_Dimension");
+ PropertyField(prop, "m_InRange");
+ PropertyField(prop, "m_OutOfRange");
+ PropertyField(prop, "m_Show");
+ if (prop.FindPropertyRelative("m_Show").boolValue)
{
- ChartEditorHelper.MakeList(ref drawRect, ref m_InRangeSize, m_InRange);
- }
-
- // drawRect.width = pos.width;
- m_OutOfRangeFoldout = EditorGUI.Foldout(drawRect, m_OutOfRangeFoldout, "OutOfRange");
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- if (m_OutOfRangeFoldout)
- {
- ChartEditorHelper.MakeList(ref drawRect, ref m_OutOfRangeSize, m_OutOfRange);
- }
- // drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
-
- EditorGUI.PropertyField(drawRect, m_Show);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- if (m_Show.boolValue)
- {
- EditorGUI.PropertyField(drawRect, m_SelectedMode);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Range, "Range");
- ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Text, "Text");
- ChartEditorHelper.MakeTwoField(ref drawRect, pos.width, m_Text, "TextGap");
- EditorGUI.PropertyField(drawRect, m_HoverLink);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_Calculable);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_ItemWidth);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_ItemHeight);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_BorderWidth);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_Orient);
- drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
- EditorGUI.PropertyField(drawRect, m_Location);
- drawRect.y += EditorGUI.GetPropertyHeight(m_Location);
+ PropertyField(prop, "m_SelectedMode");
+ PropertyTwoFiled(prop, "m_Range");
+ PropertyTwoFiled(prop, "m_Text");
+ PropertyTwoFiled(prop, "m_TextGap");
+ PropertyField(prop, "m_HoverLink");
+ PropertyField(prop, "m_Calculable");
+ PropertyField(prop, "m_ItemWidth");
+ PropertyField(prop, "m_ItemHeight");
+ PropertyField(prop, "m_BorderWidth");
+ PropertyField(prop, "m_Orient");
+ PropertyField(prop, "m_Location");
}
--EditorGUI.indentLevel;
}
}
-
- public override float GetPropertyHeight(SerializedProperty prop, GUIContent label)
- {
- float height = 0;
- int num = 1;
- if (m_VisualMapModuleToggle)
- {
- num += 10;
- height += num * EditorGUIUtility.singleLineHeight + (num - 1) * EditorGUIUtility.standardVerticalSpacing;
-
- if (m_InRangeFoldout)
- {
- SerializedProperty m_InRange = prop.FindPropertyRelative("m_InRange");
- int size = m_InRange.arraySize + 1;
- height += size * EditorGUIUtility.singleLineHeight + (size - 1) * EditorGUIUtility.standardVerticalSpacing;
- height += EditorGUIUtility.standardVerticalSpacing;
- }
- if (m_OutOfRangeFoldout)
- {
- SerializedProperty m_OutOfRange = prop.FindPropertyRelative("m_OutOfRange");
- int size = m_OutOfRange.arraySize + 1;
- height += size * EditorGUIUtility.singleLineHeight + (size - 1) * EditorGUIUtility.standardVerticalSpacing;
- height += EditorGUIUtility.standardVerticalSpacing;
- }
- if (prop.FindPropertyRelative("m_Show").boolValue)
- {
- height += 10 * EditorGUIUtility.singleLineHeight + 9 * EditorGUIUtility.standardVerticalSpacing;
- height += EditorGUI.GetPropertyHeight(prop.FindPropertyRelative("m_Location"));
- }
- }
- else
- {
- height += num * EditorGUIUtility.singleLineHeight + (num - 1) * EditorGUIUtility.standardVerticalSpacing;
- }
-
- return height;
- }
}
}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/XAxisDrawer.cs b/Editor/PropertyDrawers/XAxisDrawer.cs
deleted file mode 100644
index 13fb36c8..00000000
--- a/Editor/PropertyDrawers/XAxisDrawer.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
-
-using UnityEditor;
-
-namespace XCharts
-{
- [CustomPropertyDrawer(typeof(XAxis), true)]
- public class XAxisDrawer : AxisDrawer
- {
- protected override string GetDisplayName(string displayName)
- {
- if (displayName.StartsWith("Element"))
- {
- displayName = displayName.Replace("Element", "X Axis");
- }
- return displayName;
- }
- }
-}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/XAxisDrawer.cs.meta b/Editor/PropertyDrawers/XAxisDrawer.cs.meta
deleted file mode 100644
index 6ade3a91..00000000
--- a/Editor/PropertyDrawers/XAxisDrawer.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 723807bbaeaa64991a421011ce530266
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Editor/PropertyDrawers/YAxisDrawer.cs b/Editor/PropertyDrawers/YAxisDrawer.cs
deleted file mode 100644
index 861da12f..00000000
--- a/Editor/PropertyDrawers/YAxisDrawer.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
-
-using UnityEditor;
-
-namespace XCharts
-{
- [CustomPropertyDrawer(typeof(YAxis), true)]
- public class YAxisDrawer : AxisDrawer
- {
- protected override string GetDisplayName(string displayName)
- {
- if (displayName.StartsWith("Element"))
- {
- displayName = displayName.Replace("Element", "Y Axis");
- }
- return displayName;
- }
- }
-}
\ No newline at end of file
diff --git a/Editor/PropertyDrawers/YAxisDrawer.cs.meta b/Editor/PropertyDrawers/YAxisDrawer.cs.meta
deleted file mode 100644
index ae6c7483..00000000
--- a/Editor/PropertyDrawers/YAxisDrawer.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 6d1fca6c98f3d41fd989d0e41fbd4eb9
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Editor/RadarChartEditor.cs b/Editor/RadarChartEditor.cs
index 1cfe72eb..b08be0f1 100644
--- a/Editor/RadarChartEditor.cs
+++ b/Editor/RadarChartEditor.cs
@@ -16,20 +16,5 @@ namespace XCharts
[CustomEditor(typeof(RadarChart), false)]
public class RadarChartEditor : BaseChartEditor
{
- protected SerializedProperty m_Radar;
- protected SerializedProperty m_Radars;
-
- protected override void OnEnable()
- {
- base.OnEnable();
- m_Target = (RadarChart)target;
- m_Radars = serializedObject.FindProperty("m_Radars");
- }
-
- protected override void OnEndInspectorGUI()
- {
- EditorGUILayout.PropertyField(m_Radars, true);
- base.OnEndInspectorGUI();
- }
}
}
\ No newline at end of file
diff --git a/Editor/RingChartEditor.cs b/Editor/RingChartEditor.cs
index f480e370..cf054b61 100644
--- a/Editor/RingChartEditor.cs
+++ b/Editor/RingChartEditor.cs
@@ -1,9 +1,9 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using UnityEditor;
@@ -12,17 +12,13 @@ namespace XCharts
///
/// Editor class used to edit UI RingChart.
///
-
[CustomEditor(typeof(RingChart), false)]
public class RingChartEditor : BaseChartEditor
{
- protected SerializedProperty m_Radar;
- protected SerializedProperty m_Radars;
-
protected override void OnEnable()
{
base.OnEnable();
- m_Target = (RingChart)target;
+ m_Chart = (RingChart)target;
}
}
}
\ No newline at end of file
diff --git a/Editor/ScatterChartEditor.cs b/Editor/ScatterChartEditor.cs
index 5c2da689..e6c0494b 100644
--- a/Editor/ScatterChartEditor.cs
+++ b/Editor/ScatterChartEditor.cs
@@ -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,13 @@ namespace XCharts
///
/// Editor class used to edit UI ScatterChart.
///
-
[CustomEditor(typeof(ScatterChart), false)]
public class ScatterChartEditor : CoordinateChartEditor
{
protected override void OnEnable()
{
base.OnEnable();
- m_Target = (ScatterChart)target;
- }
-
- protected override void OnEndInspectorGUI()
- {
- base.OnEndInspectorGUI();
+ m_Chart = (ScatterChart)target;
}
}
}
\ No newline at end of file
diff --git a/Editor/Tools/UpgradeChartColor.cs b/Editor/Tools/UpgradeChartColor.cs
deleted file mode 100644
index 3ca52184..00000000
--- a/Editor/Tools/UpgradeChartColor.cs
+++ /dev/null
@@ -1,377 +0,0 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
-
-using System.Collections.Generic;
-using System.IO;
-using System.Text;
-using UnityEditor;
-using UnityEngine;
-
-namespace XCharts
-{
- ///
- /// 升级旧版本的颜色配置到1.6.0以上版本,参考[问答29](https://github.com/monitor1394/unity-ugui-XCharts/blob/master/Assets/XCharts/Documentation/XCharts问答.md)进行升级
- /// 导出:菜单栏->XCharts->ExportColorConfig
- /// 导入:菜单栏->XCharts->ImportColorConfig
- ///
- public static class UpgradeChartColor
- {
- private const string CONFIG_PATH = "/colors.config"; // /Assets/
-
- [MenuItem("XCharts/ExportColorConfig")]
- ///
- /// Export all the color configuration associated with drawing.
- /// 导出所有图表的和绘制相关的颜色配置。保存在Assets目录下的colors.config文件里。
- ///
- public static void ExportColorConfig()
- {
- Debug.Log("ExportColorConfig");
- var charts = Resources.FindObjectsOfTypeAll(typeof(BaseChart));
- var sb = new StringBuilder();
- foreach (var chart in charts)
- {
- if (chart is CoordinateChart) ExportCoordinateChart(sb, chart as CoordinateChart);
- else if (chart is LiquidChart) ExportLiquidChart(sb, chart as LiquidChart); //如果这里编译失败,说明该版本不存在LiquidChart,可以整行注释掉。
- else if (chart is RadarChart) ExportRadarChart(sb, chart as RadarChart);
- else ExportSeries(sb, chart as BaseChart);
- sb.Append("\n");
- }
- Debug.LogFormat("ExportColorConfig DONE: {0} charts.", charts.Length);
- File.WriteAllText(Application.dataPath + CONFIG_PATH, sb.ToString());
- }
-
- [MenuItem("XCharts/ImportColorConfig")]
- ///
- /// 导入旧版本的颜色配置。
- ///
- public static void ImportColorConfig()
- {
- Debug.Log("ImportColorConfig");
- var configPath = Application.dataPath + CONFIG_PATH;
- if (!File.Exists(configPath))
- {
- Debug.LogError("ImportColorConfig ERROR:can't found config:" + configPath);
- return;
- }
- var charts = Resources.FindObjectsOfTypeAll(typeof(BaseChart));
- var chartDic = new Dictionary();
- foreach (var chart in charts)
- {
- chartDic[chart.GetInstanceID()] = chart as BaseChart;
- }
- var allLines = File.ReadAllLines(configPath);
- var chartSet = new HashSet();
- foreach (var line in allLines)
- {
- if (string.IsNullOrEmpty(line)) continue;
- var temp = line.Split('=');
- var instanceId = int.Parse(temp[0]);
- if (!chartDic.ContainsKey(instanceId))
- {
- Debug.LogError("can't find chart:" + instanceId);
- continue;
- }
- if (!chartSet.Contains(instanceId)) chartSet.Add(instanceId);
- var chart = chartDic[instanceId];
- var colorList = ConvertToColorList(temp[2]);
- var temp2 = temp[1].Split('_');
- var allType = temp[1];
- var strType = temp2[0];
- if (allType.Equals("visualMap")) ImportColorList((chart as CoordinateChart).visualMap.inRange, colorList);
- else if (allType.Equals("xAxis0_splitArea")) ImportColorList((chart as CoordinateChart).xAxis0.splitArea.color, colorList);
- else if (allType.Equals("xAxis1_splitArea")) ImportColorList((chart as CoordinateChart).xAxis1.splitArea.color, colorList);
- else if (allType.Equals("yAxis0_splitArea")) ImportColorList((chart as CoordinateChart).yAxis0.splitArea.color, colorList);
- else if (allType.Equals("yAxis1_splitArea")) ImportColorList((chart as CoordinateChart).yAxis1.splitArea.color, colorList);
- else if (allType.Equals("xAxis0_splitLine")) (chart as CoordinateChart).xAxis0.splitLine.lineStyle.color = colorList[0];
- else if (allType.Equals("xAxis1_splitLine")) (chart as CoordinateChart).xAxis1.splitLine.lineStyle.color = colorList[0];
- else if (allType.Equals("yAxis0_splitLine")) (chart as CoordinateChart).yAxis0.splitLine.lineStyle.color = colorList[0];
- else if (allType.Equals("yAxis1_splitLine")) (chart as CoordinateChart).yAxis1.splitLine.lineStyle.color = colorList[0];
- else if (strType.Equals("vessel")) ImportVesselColor(chart, int.Parse(temp2[1]), colorList); //没有LiquidChart的版本该行可以注释掉。
- else if (strType.Equals("radarSplitLine")) ImportRadarSplitLineColor(chart, int.Parse(temp2[1]), colorList);
- else if (strType.Equals("radarSplitArea")) ImportRadarSplitAreaColor(chart, int.Parse(temp2[1]), colorList);
- else if (strType.Equals("serie"))
- {
- var index = int.Parse(temp2[1]);
- var strSubType = temp2[2];
- var serie = chart.series.GetSerie(index);
- if (strSubType.Equals("lineStyle")) serie.lineStyle.color = colorList[0];
- else if (strSubType.Equals("areaStyle")) ImportSerieAreaColor(serie.areaStyle, colorList);
- else if (strSubType.Equals("label")) ImportLabelColor(serie.label, colorList);
- else if (strSubType.Equals("labelEmphasis")) ImportLabelColor(serie.emphasis.label, colorList);
- else if (strSubType.Equals("itemStyle")) ImportItemStyleColor(serie.itemStyle, colorList);
- else if (strSubType.Equals("itemStyleEmphasis")) ImportItemStyleColor(serie.emphasis.itemStyle, colorList);
- else if (strSubType.Equals("gaugeAxisLine")) ImportGaugeAxisLineColor(serie.gaugeAxis, colorList);
- else if (strSubType.Equals("gaugeSplitLine")) serie.gaugeAxis.splitLine.lineStyle.color = colorList[0];
- else if (strSubType.Equals("gaugeAxisTick")) serie.gaugeAxis.axisTick.lineStyle.color = colorList[0];
- }
- else if (strType.Equals("serieData"))
- {
- var index = int.Parse(temp2[1]);
- var dataIndex = int.Parse(temp2[2]);
- var strSubType = temp2[3];
- var serieData = chart.series.GetSerie(index).GetSerieData(dataIndex);
- if (strSubType.Equals("label")) ImportLabelColor(serieData.label, colorList);
- else if (strSubType.Equals("labelEmphasis")) ImportLabelColor(serieData.emphasis.label, colorList);
- else if (strSubType.Equals("itemStyle")) ImportItemStyleColor(serieData.itemStyle, colorList);
- else if (strSubType.Equals("itemStyleEmphasis")) ImportItemStyleColor(serieData.emphasis.itemStyle, colorList);
- }
- chart.RefreshChart();
- }
- AssetDatabase.SaveAssets();
- AssetDatabase.Refresh();
- Debug.LogFormat("ImportColorConfig DONE: {0} charts.", chartSet.Count);
- }
-
- private static void ExportCoordinateChart(StringBuilder sb, CoordinateChart chart)
- {
- var instanceId = chart.GetInstanceID();
- if (chart.visualMap.show)
- {
- AppendColor(sb, instanceId, "visualMap", chart.visualMap.inRange);
- }
- if (chart.xAxis0.show)
- {
- if (chart.xAxis0.splitArea.show)
- AppendColor(sb, instanceId, "xAxis0_splitArea", chart.xAxis0.splitArea.color);
- if (chart.xAxis0.splitLine.show)
- AppendColor(sb, instanceId, "xAxis0_splitLine", chart.xAxis0.splitLine.lineStyle.color);
- }
- if (chart.xAxis1.show)
- {
- if (chart.xAxis1.splitArea.show)
- AppendColor(sb, instanceId, "xAxis1_splitArea", chart.xAxis1.splitArea.color);
- if (chart.xAxis1.splitLine.show)
- AppendColor(sb, instanceId, "xAxis1_splitLine", chart.xAxis1.splitLine.lineStyle.color);
- }
- if (chart.yAxis0.show)
- {
- if (chart.yAxis0.splitArea.show)
- AppendColor(sb, instanceId, "yAxis0_splitArea", chart.yAxis0.splitArea.color);
- if (chart.yAxis0.splitLine.show)
- AppendColor(sb, instanceId, "yAxis0_splitLine", chart.yAxis0.splitLine.lineStyle.color);
- }
- if (chart.yAxis1.show)
- {
- if (chart.yAxis1.splitArea.show)
- AppendColor(sb, instanceId, "yAxis1_splitArea", chart.yAxis1.splitArea.color);
- if (chart.yAxis1.splitLine.show)
- AppendColor(sb, instanceId, "yAxis1_splitLine", chart.yAxis1.splitLine.lineStyle.color);
- }
- ExportSeries(sb, chart);
- }
-
- ///
- /// LiquidChart不在该版本时整个函数可以注释掉
- ///
- private static void ExportLiquidChart(StringBuilder sb, LiquidChart chart)
- {
- var instanceId = chart.GetInstanceID();
- var key = "vessel_";
- for (int i = 0; i < chart.vessels.Count; i++)
- {
- var vessel = chart.vessels[i];
- AppendColor(sb, instanceId, key + i, vessel.color, vessel.backgroundColor);
- }
- ExportSeries(sb, chart);
- }
-
- private static void ExportRadarChart(StringBuilder sb, RadarChart chart)
- {
- var instanceId = chart.GetInstanceID();
- for (int i = 0; i < chart.radars.Count; i++)
- {
- var radar = chart.radars[i];
- AppendColor(sb, instanceId, "radarSplitLine_" + i, radar.splitLine.lineStyle.color);
- AppendColor(sb, instanceId, "radarSplitArea_" + i, radar.splitArea.color);
- }
- ExportSeries(sb, chart);
- }
-
- private static void ExportSeries(StringBuilder sb, BaseChart chart)
- {
- var instanceId = chart.GetInstanceID();
- for (int i = 0; i < chart.series.list.Count; i++)
- {
- var serie = chart.series.GetSerie(i);
- var key = "serie_" + i;
- AppendColor(sb, instanceId, key + "_itemStyle", serie.itemStyle.color, serie.itemStyle.toColor, serie.itemStyle.toColor2, serie.itemStyle.backgroundColor, serie.itemStyle.borderColor);
- AppendColor(sb, instanceId, key + "_label", serie.label.backgroundColor, serie.label.borderColor);
- AppendColor(sb, instanceId, key + "_itemStyleEmphasis", serie.emphasis.itemStyle.color, serie.emphasis.itemStyle.toColor, serie.emphasis.itemStyle.toColor2, serie.emphasis.itemStyle.backgroundColor, serie.emphasis.itemStyle.borderColor);
- AppendColor(sb, instanceId, key + "_labelEmphasis", serie.emphasis.label.backgroundColor, serie.emphasis.label.borderColor);
- if (serie.type == SerieType.Line)
- {
- AppendColor(sb, instanceId, key + "_lineStyle", serie.lineStyle.color);
- AppendColor(sb, instanceId, key + "_areaStyle", serie.areaStyle.color, serie.areaStyle.toColor, serie.areaStyle.highlightColor, serie.areaStyle.highlightToColor);
- }
- if (serie.type == SerieType.Gauge)
- {
- var axisLineColors = new List();
- axisLineColors.Add(serie.gaugeAxis.axisLine.barColor);
- axisLineColors.Add(serie.gaugeAxis.axisLine.barBackgroundColor);
- for (int n = 0; n < serie.gaugeAxis.axisLine.stageColor.Count; n++)
- {
- axisLineColors.Add(serie.gaugeAxis.axisLine.stageColor[n].color);
- }
- AppendColor(sb, instanceId, key + "_gaugeAxisLine", axisLineColors);
- AppendColor(sb, instanceId, key + "_gaugeSplitLine", serie.gaugeAxis.splitLine.lineStyle.color);
- AppendColor(sb, instanceId, key + "_gaugeAxisTick", serie.gaugeAxis.axisTick.lineStyle.color);
- }
- for (int j = 0; j < serie.dataCount; j++)
- {
- key = string.Format("serieData_{0}_{1}", i, j);
- var serieData = serie.GetSerieData(j);
- if (serieData.enableItemStyle)
- AppendColor(sb, instanceId, key + "_itemStyle", serieData.itemStyle.color, serieData.itemStyle.toColor, serieData.itemStyle.toColor2, serieData.itemStyle.backgroundColor, serieData.itemStyle.borderColor);
- if (serieData.enableLabel)
- AppendColor(sb, instanceId, key + "_label", serieData.label.backgroundColor, serieData.label.borderColor);
- if (serieData.enableEmphasis)
- AppendColor(sb, instanceId, key + "_itemStyleEmphasis", serieData.emphasis.itemStyle.color, serieData.emphasis.itemStyle.toColor, serieData.emphasis.itemStyle.toColor2, serieData.emphasis.itemStyle.backgroundColor, serieData.emphasis.itemStyle.borderColor);
- if (serieData.enableEmphasis)
- AppendColor(sb, instanceId, key + "_labelEmphasis", serieData.emphasis.label.backgroundColor, serieData.emphasis.label.borderColor);
- }
- }
- }
-
- private static void ExportGague(GaugeAxis gauge, StringBuilder sb)
- {
-
- }
-
- private static void AppendColor(StringBuilder sb, int instanceId, string key, List list)
- {
- if (list.Count <= 0) return;
- sb.AppendFormat("{0}={1}=", instanceId, key);
- for (int i = 0; i < list.Count; i++)
- {
- sb.AppendFormat("{0}|", GetColorRGBA(list[i]));
- }
- sb.Append("\n");
- }
-
- private static void AppendColor(StringBuilder sb, int instanceId, string key, params Color[] color)
- {
- sb.AppendFormat("{0}={1}=", instanceId, key);
- for (int i = 0; i < color.Length; i++)
- {
- sb.AppendFormat("{0}|", GetColorRGBA(color[i]));
- }
- sb.Append("\n");
- }
-
- private static void AppendColor(StringBuilder sb, int instanceId, string key, List list)
- {
- if (list.Count <= 0) return;
- sb.AppendFormat("{0}={1}=", instanceId, key);
- for (int i = 0; i < list.Count; i++)
- {
- sb.AppendFormat("{0}|", GetColorRGBA(list[i]));
- }
- sb.Append("\n");
- }
-
- private static string GetColorRGBA(Color color)
- {
- Color32 color32 = color;
- return string.Format("{0},{1},{2},{3}", color32.r, color32.g, color32.b, color32.a);
- }
-
- private static List ConvertToColorList(string strInfo)
- {
- var temp = strInfo.Split('|');
- var list = new List();
- for (int i = 0; i < temp.Length; i++)
- {
- if (!string.IsNullOrEmpty(temp[i]))
- {
- var temp2 = temp[i].Split(',');
- var r = byte.Parse(temp2[0]);
- var g = byte.Parse(temp2[1]);
- var b = byte.Parse(temp2[2]);
- var a = byte.Parse(temp2[3]);
- list.Add(new Color32(r, g, b, a));
- }
- }
- return list;
- }
-
- private static void ImportColorList(List target, List colorList)
- {
- target.Clear();
- for (int i = 0; i < colorList.Count; i++)
- {
- target.Add(colorList[i]);
- }
- }
-
- private static void ImportColorList(List target, List colorList)
- {
- target.Clear();
- for (int i = 0; i < colorList.Count; i++)
- {
- target.Add(colorList[i]);
- }
- }
-
- private static void ImportSerieAreaColor(AreaStyle areaStyle, List colorList)
- {
- areaStyle.color = colorList[0];
- areaStyle.toColor = colorList[1];
- areaStyle.highlightColor = colorList[2];
- areaStyle.highlightToColor = colorList[3];
- }
-
- private static void ImportLabelColor(SerieLabel label, List colorList)
- {
- label.backgroundColor = colorList[0];
- label.borderColor = colorList[1];
- }
-
- private static void ImportItemStyleColor(ItemStyle itemStyle, List colorList)
- {
- itemStyle.color = colorList[0];
- itemStyle.toColor = colorList[1];
- itemStyle.toColor2 = colorList[2];//没有toColor2的版本可以注释掉改行
- itemStyle.backgroundColor = colorList[3];
- itemStyle.borderColor = colorList[4];
- }
-
- private static void ImportGaugeAxisLineColor(GaugeAxis gauge, List colorList)
- {
- gauge.axisLine.barColor = colorList[0];
- gauge.axisLine.barBackgroundColor = colorList[1];
- for (int i = 2; i < colorList.Count; i++)
- {
- gauge.axisLine.stageColor[i - 2].color = colorList[i];
- }
- }
-
- ///
- /// 没有LiquidChart的版本这个函数可以注释掉
- ///
- ///
- ///
- ///
- private static void ImportVesselColor(BaseChart chart, int index, List colorList)
- {
- var vessel = (chart as LiquidChart).GetVessel(index);
- vessel.color = colorList[0];
- vessel.backgroundColor = colorList[1];
- }
-
- private static void ImportRadarSplitLineColor(BaseChart chart, int index, List colorList)
- {
- var radar = (chart as RadarChart).GetRadar(index);
- radar.splitLine.lineStyle.color = colorList[0];
- }
-
- private static void ImportRadarSplitAreaColor(BaseChart chart, int index, List colorList)
- {
- var radar = (chart as RadarChart).GetRadar(index);
- ImportColorList(radar.splitArea.color, colorList);
- }
- }
-}
\ No newline at end of file
diff --git a/Editor/Tools/UpgradeChartColor.cs.meta b/Editor/Tools/UpgradeChartColor.cs.meta
deleted file mode 100644
index 6490c9b9..00000000
--- a/Editor/Tools/UpgradeChartColor.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 0c7ad8674f7b24e82a92138976f5e969
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Editor/Utility/ChartEditorHelper.cs b/Editor/Utility/ChartEditorHelper.cs
index 13b2822a..0f3835d9 100644
--- a/Editor/Utility/ChartEditorHelper.cs
+++ b/Editor/Utility/ChartEditorHelper.cs
@@ -1,6 +1,7 @@
using UnityEngine;
using UnityEditor;
using System.Collections.Generic;
+using XCharts;
public class ChartEditorHelper
{
@@ -8,7 +9,8 @@ public class ChartEditorHelper
public const float INDENT_WIDTH = 15;
public const float BOOL_WIDTH = 15;
public const float ARROW_WIDTH = 20;
- public const float GAP_WIDTH =2;
+ public const float BLOCK_WIDTH = 4;
+ public const float GAP_WIDTH = 2;
#else
public const float INDENT_WIDTH = 15;
public const float BOOL_WIDTH = 15;
@@ -119,7 +121,7 @@ public class ChartEditorHelper
}
public static bool MakeFoldout(ref Rect drawRect, ref bool moduleToggle, string content,
- SerializedProperty prop = null, bool bold = true)
+ SerializedProperty prop = null, bool bold = false)
{
float defaultWidth = drawRect.width;
float defaultX = drawRect.x;
@@ -131,12 +133,49 @@ public class ChartEditorHelper
return moduleToggle;
}
+ public static bool MakeFoldout(ref Rect drawRect, Dictionary heights, Dictionary moduleToggle,
+ string key, string content, SerializedProperty prop, bool bold = false)
+ {
+ float defaultWidth = drawRect.width;
+ float defaultX = drawRect.x;
+ drawRect.width = EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH;
+ moduleToggle[key] = EditorGUI.Foldout(drawRect, moduleToggle[key], content, bold ? foldoutStyle : EditorStyles.foldout);
+ if (prop != null)
+ {
+ if (prop.propertyType == SerializedPropertyType.Boolean)
+ {
+ MakeBool(drawRect, prop);
+ }
+ else
+ {
+ drawRect.x = EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH + ARROW_WIDTH;
+ drawRect.width = defaultWidth - drawRect.x + ARROW_WIDTH - 2;
+ if (XChartsSettings.editorBlockEnable)
+ {
+ drawRect.x += BLOCK_WIDTH;
+ }
+
+ EditorGUI.PropertyField(drawRect, prop, GUIContent.none);
+ }
+ }
+
+ drawRect.width = defaultWidth;
+ drawRect.x = defaultX;
+ drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ heights[key] += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ return moduleToggle[key];
+ }
+
public static void MakeBool(Rect drawRect, SerializedProperty boolProp, int index = 0, string name = null)
{
float defaultWidth = drawRect.width;
float defaultX = drawRect.x;
float boolWidth = index * (BOOL_WIDTH + GAP_WIDTH);
drawRect.x = EditorGUIUtility.labelWidth - EditorGUI.indentLevel * INDENT_WIDTH + ARROW_WIDTH + boolWidth;
+ if (XChartsSettings.editorBlockEnable)
+ {
+ drawRect.x += BLOCK_WIDTH;
+ }
drawRect.width = (EditorGUI.indentLevel + 1) * BOOL_WIDTH + index * 110;
if (boolProp != null)
{
@@ -152,8 +191,17 @@ public class ChartEditorHelper
drawRect.x = defaultX;
}
+ public static bool MakeFoldout(ref Rect drawRect, ref float height, ref Dictionary moduleToggle, SerializedProperty prop,
+ string moduleName, string showPropName, bool bold = false)
+ {
+ var flag = MakeFoldout(ref drawRect, ref moduleToggle, prop, moduleName, prop.FindPropertyRelative(showPropName), bold);
+ drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ return flag;
+ }
+
public static bool MakeFoldout(ref Rect drawRect, ref Dictionary moduleToggle, SerializedProperty prop,
- string moduleName, SerializedProperty showProp = null, bool bold = true)
+ string moduleName, SerializedProperty showProp = null, bool bold = false)
{
var key = prop.propertyPath;
if (!moduleToggle.ContainsKey(key))
@@ -187,6 +235,10 @@ public class ChartEditorHelper
{
drawRect.width = defaultWidth - drawRect.x + ARROW_WIDTH - GAP_WIDTH;
}
+ if (XChartsSettings.editorBlockEnable)
+ {
+ drawRect.x += BLOCK_WIDTH;
+ }
EditorGUI.PropertyField(drawRect, showProp, GUIContent.none);
}
drawRect.width = defaultWidth;
@@ -195,6 +247,12 @@ public class ChartEditorHelper
}
public static void MakeList(ref Rect drawRect, ref int listSize, SerializedProperty listProp, bool showOrder = false, bool showSize = true)
+ {
+ var height = 0f;
+ MakeList(ref drawRect, ref height, ref listSize, listProp, showOrder, showSize);
+ }
+
+ public static void MakeList(ref Rect drawRect, ref float height, ref int listSize, SerializedProperty listProp, bool showOrder = false, bool showSize = true)
{
EditorGUI.indentLevel++;
listSize = listProp.arraySize;
@@ -202,13 +260,25 @@ public class ChartEditorHelper
{
if (showOrder)
{
- var nameWid = 15;
+ var nameWid = 18;
var temp = INDENT_WIDTH + GAP_WIDTH;
var elementRect = new Rect(drawRect.x, drawRect.y, drawRect.width - nameWid - 1, drawRect.height);
var iconRect = new Rect(drawRect.width - nameWid + temp, drawRect.y, nameWid, drawRect.height);
+ if (XChartsSettings.editorBlockEnable)
+ {
+ iconRect.x += BLOCK_WIDTH;
+ }
if (GUI.Button(iconRect, new GUIContent("+", "add")))
{
- listProp.arraySize++;
+ if (listProp.displayName.Equals("Series"))
+ {
+ AddSerieEditor.chart = listProp.serializedObject.targetObject as BaseChart;
+ AddSerieEditor.ShowWindow();
+ }
+ else
+ {
+ listProp.arraySize++;
+ }
}
listSize = listProp.arraySize;
listSize = EditorGUI.IntField(elementRect, "Size", listSize);
@@ -219,6 +289,7 @@ public class ChartEditorHelper
}
if (listSize < 0) listSize = 0;
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
if (listSize != listProp.arraySize)
{
@@ -235,14 +306,17 @@ public class ChartEditorHelper
element = listProp.GetArrayElementAtIndex(i);
EditorGUI.PropertyField(drawRect, element, new GUIContent("Element " + i));
drawRect.y += EditorGUI.GetPropertyHeight(element) + EditorGUIUtility.standardVerticalSpacing;
+ height += EditorGUI.GetPropertyHeight(element) + EditorGUIUtility.standardVerticalSpacing;
}
if (num >= 10)
{
EditorGUI.LabelField(drawRect, "...");
drawRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ height += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
element = listProp.GetArrayElementAtIndex(listSize - 1);
EditorGUI.PropertyField(drawRect, element, new GUIContent("Element " + (listSize - 1)));
drawRect.y += EditorGUI.GetPropertyHeight(element) + EditorGUIUtility.standardVerticalSpacing;
+ height += EditorGUI.GetPropertyHeight(element) + EditorGUIUtility.standardVerticalSpacing;
}
}
else
@@ -252,22 +326,34 @@ public class ChartEditorHelper
SerializedProperty element = listProp.GetArrayElementAtIndex(i);
if (showOrder)
{
- var nameWid = 15;
+ var nameWid = 18;
var temp = INDENT_WIDTH + GAP_WIDTH;
var isSerie = "Serie".Equals(element.type);
var elementRect = isSerie ? drawRect : new Rect(drawRect.x, drawRect.y, drawRect.width - 2 * nameWid, drawRect.height);
EditorGUI.PropertyField(elementRect, element, new GUIContent("Element " + i));
var iconRect = new Rect(drawRect.width - 3 * nameWid + temp, drawRect.y, nameWid, drawRect.height);
+ if (XChartsSettings.editorBlockEnable)
+ {
+ iconRect.x += BLOCK_WIDTH;
+ }
if (GUI.Button(iconRect, new GUIContent("↑", "up")))
{
if (i > 0) listProp.MoveArrayElement(i, i - 1);
}
iconRect = new Rect(drawRect.width - 2 * nameWid + temp, drawRect.y, nameWid, drawRect.height);
+ if (XChartsSettings.editorBlockEnable)
+ {
+ iconRect.x += BLOCK_WIDTH;
+ }
if (GUI.Button(iconRect, new GUIContent("↓", "down")))
{
if (i < listProp.arraySize - 1) listProp.MoveArrayElement(i, i + 1);
}
iconRect = new Rect(drawRect.width - nameWid + temp, drawRect.y, nameWid, drawRect.height);
+ if (XChartsSettings.editorBlockEnable)
+ {
+ iconRect.x += BLOCK_WIDTH;
+ }
if (GUI.Button(iconRect, new GUIContent("-", "delete")))
{
if (i < listProp.arraySize && i >= 0) listProp.DeleteArrayElementAtIndex(i);
@@ -275,52 +361,113 @@ public class ChartEditorHelper
else
{
drawRect.y += EditorGUI.GetPropertyHeight(element) + EditorGUIUtility.standardVerticalSpacing;
+ height += EditorGUI.GetPropertyHeight(element) + EditorGUIUtility.standardVerticalSpacing;
}
}
else
{
EditorGUI.PropertyField(drawRect, element, new GUIContent("Element " + i));
drawRect.y += EditorGUI.GetPropertyHeight(element) + EditorGUIUtility.standardVerticalSpacing;
+ height += EditorGUI.GetPropertyHeight(element) + EditorGUIUtility.standardVerticalSpacing;
}
}
}
EditorGUI.indentLevel--;
}
- public static int InitModuleToggle(ref List moduleToggle, SerializedProperty prop)
+ public static void MakeList(ref int listSize, SerializedProperty listProp, bool showOrder = false, bool showSize = true)
{
- int index = 0;
- var temp = prop.displayName.Split(' ');
- if (temp == null || temp.Length < 2)
+ EditorGUI.indentLevel++;
+ listSize = listProp.arraySize;
+ if (showSize)
{
- index = 0;
+ if (showOrder)
+ {
+ EditorGUILayout.BeginHorizontal();
+ listSize = EditorGUILayout.IntField("Size", listSize);
+ if (GUILayout.Button(new GUIContent("+", "add"), GUILayout.MinWidth(15), GUILayout.MaxWidth(15)))
+ {
+ listProp.arraySize++;
+ }
+ listSize = listProp.arraySize;
+ EditorGUILayout.EndHorizontal();
+ }
+ else
+ {
+ listSize = EditorGUILayout.IntField("Size", listSize);
+ }
+ if (listSize < 0) listSize = 0;
+ if (listSize != listProp.arraySize)
+ {
+ while (listSize > listProp.arraySize) listProp.arraySize++;
+ while (listSize < listProp.arraySize) listProp.arraySize--;
+ }
+ }
+ if (listSize > 30)
+ {
+ SerializedProperty element;
+ int num = listSize > 10 ? 10 : listSize;
+ for (int i = 0; i < num; i++)
+ {
+ element = listProp.GetArrayElementAtIndex(i);
+ EditorGUILayout.PropertyField(element, true);
+ }
+ if (num >= 10)
+ {
+ EditorGUILayout.LabelField("...");
+ element = listProp.GetArrayElementAtIndex(listSize - 1);
+ EditorGUILayout.PropertyField(element, true);
+ }
}
else
{
- int.TryParse(temp[1], out index);
+ for (int i = 0; i < listProp.arraySize; i++)
+ {
+ SerializedProperty element = listProp.GetArrayElementAtIndex(i);
+ if (showOrder)
+ {
+ EditorGUILayout.BeginHorizontal();
+ EditorGUILayout.PropertyField(element, true);
+ if (GUILayout.Button(new GUIContent("↑", "up"), GUILayout.MinWidth(15), GUILayout.MaxWidth(15)))
+ {
+ if (i > 0) listProp.MoveArrayElement(i, i - 1);
+ }
+ if (GUILayout.Button(new GUIContent("↓", "down"), GUILayout.MinWidth(15), GUILayout.MaxWidth(15)))
+ {
+ if (i < listProp.arraySize - 1) listProp.MoveArrayElement(i, i + 1);
+ }
+ if (GUILayout.Button(new GUIContent("-", "delete"), GUILayout.MinWidth(15), GUILayout.MaxWidth(15)))
+ {
+ if (i < listProp.arraySize && i >= 0) listProp.DeleteArrayElementAtIndex(i);
+ }
+ EditorGUILayout.EndHorizontal();
+ }
+ else
+ {
+ EditorGUILayout.PropertyField(element, true);
+ }
+ }
}
- if (index >= moduleToggle.Count)
- {
- moduleToggle.Add(false);
- }
- return index;
+ EditorGUI.indentLevel--;
}
- public static int GetIndexFromPath(SerializedProperty prop)
+ public static bool PropertyField(ref Rect drawRect, Dictionary heights, string key, SerializedProperty prop)
{
- int index = 0;
- var sindex = prop.propertyPath.LastIndexOf('[');
- var eindex = prop.propertyPath.LastIndexOf(']');
- if (sindex >= 0 && eindex >= 0)
+ if (prop == null)
{
- var str = prop.propertyPath.Substring(sindex + 1, eindex - sindex - 1);
- int.TryParse(str, out index);
+ return false;
}
- return index;
+ EditorGUI.PropertyField(drawRect, prop, true);
+ var hig = EditorGUI.GetPropertyHeight(prop);
+ // var hig = prop.hasVisibleChildren
+ // ? EditorGUI.GetPropertyHeight(prop)
+ // : EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ drawRect.y += hig;
+ heights[key] += hig;
+ return true;
}
-
- public static bool IsToggle(Dictionary toggle, SerializedProperty prop)
+ public static bool PropertyField(ref Rect drawRect, Dictionary heights, string key, SerializedProperty parentProp, string relativeName)
{
- return toggle.ContainsKey(prop.propertyPath) && toggle[prop.propertyPath] == true;
+ return PropertyField(ref drawRect, heights, key, parentProp.FindPropertyRelative(relativeName));
}
}
\ No newline at end of file
diff --git a/Editor/Tools.meta b/Editor/Window.meta
similarity index 77%
rename from Editor/Tools.meta
rename to Editor/Window.meta
index 69765965..6e597abe 100644
--- a/Editor/Tools.meta
+++ b/Editor/Window.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 5f8c1764407aa478892ac9355ec71934
+guid: ac8865193d4f548d2aaf66163c4192d9
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/Editor/Window/AddSerieEditor.cs b/Editor/Window/AddSerieEditor.cs
new file mode 100644
index 00000000..08fe7bd8
--- /dev/null
+++ b/Editor/Window/AddSerieEditor.cs
@@ -0,0 +1,56 @@
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
+
+using System.Collections.Generic;
+using UnityEditor;
+using UnityEngine;
+
+namespace XCharts
+{
+ public class AddSerieEditor : EditorWindow
+ {
+ public static BaseChart chart;
+ private static AddSerieEditor window;
+ private SerieType serieType;
+ private string serieName;
+
+ public static void ShowWindow()
+ {
+ window = GetWindow();
+ window.titleContent = new GUIContent("Add Serie");
+ window.minSize = new Vector2(350, window.minSize.y);
+ window.Focus();
+ window.Show();
+ }
+
+ void OnInspectorUpdate()
+ {
+ Repaint();
+ }
+
+ private void OnGUI()
+ {
+ if (chart == null)
+ {
+ Close();
+ return;
+ }
+ var iconRect = new Rect(5, 10, position.width - 10, EditorGUIUtility.singleLineHeight);
+ serieType = (SerieType)EditorGUI.EnumPopup(iconRect, "Serie Type", serieType);
+ iconRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ serieName = "serie" + (chart.series.Count + 1);
+ serieName = EditorGUI.TextField(iconRect, "Serie Name", serieName);
+ iconRect.y += EditorGUIUtility.singleLineHeight + EditorGUIUtility.standardVerticalSpacing;
+ GUILayout.Space(iconRect.y + 5);
+ if (GUILayout.Button("Add"))
+ {
+ SerieTemplate.AddDefaultSerie(chart, serieType, serieName);
+ chart.RefreshAllComponent();
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Editor/Window/AddSerieEditor.cs.meta b/Editor/Window/AddSerieEditor.cs.meta
new file mode 100644
index 00000000..b7ae73c1
--- /dev/null
+++ b/Editor/Window/AddSerieEditor.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 450c3b4decd234f1894f1a8fd1161af8
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Editor/CheckVersionEditor.cs b/Editor/Window/CheckVersionEditor.cs
similarity index 62%
rename from Editor/CheckVersionEditor.cs
rename to Editor/Window/CheckVersionEditor.cs
index 1769f053..4611b606 100644
--- a/Editor/CheckVersionEditor.cs
+++ b/Editor/Window/CheckVersionEditor.cs
@@ -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;
@@ -15,11 +15,11 @@ namespace XCharts
private Vector2 scrollPos;
private static CheckVersionEditor window;
- [MenuItem("XCharts/Check For Update")]
+ [MenuItem("XCharts/Upgrade Check")]
public static void ShowWindow()
{
window = GetWindow();
- window.titleContent = new GUIContent("XCharts Check For Update");
+ window.titleContent = new GUIContent("XCharts Upgrade Check");
window.minSize = new Vector2(550, window.minSize.y);
window.Show();
XChartsMgr.Instance.CheckVersion();
@@ -34,16 +34,16 @@ namespace XCharts
{
var mgr = XChartsMgr.Instance;
GUILayout.Label("");
- GUILayout.Label("当前版本:" + mgr.nowVersion);
+ GUILayout.Label("The current version: " + mgr.nowVersion);
if (mgr.needUpdate && !mgr.isCheck)
{
- GUILayout.Label("最新版本:" + mgr.newVersion);
+ GUILayout.Label("The latest version: " + mgr.newVersion);
GUILayout.Label("");
- if (mgr.isCheck) GUILayout.Label("检测中...");
- else if (mgr.isNetworkError) GUILayout.Label("检测失败:" + mgr.networkError);
+ if (mgr.isCheck) GUILayout.Label("check ...");
+ else if (mgr.isNetworkError) GUILayout.Label("check failed: " + mgr.networkError);
else
{
- GUILayout.Label("有更新!");
+ GUILayout.Label("There is a new version to upgrade!");
}
GUILayout.Label("");
@@ -51,15 +51,15 @@ namespace XCharts
{
GUILayout.Label(mgr.desc);
}
- if (GUILayout.Button("去Github主页"))
+ if (GUILayout.Button("Github Homepage"))
{
Application.OpenURL("https://github.com/monitor1394/unity-ugui-XCharts");
}
- if (GUILayout.Button("点Star支持"))
+ if (GUILayout.Button("Star Support"))
{
Application.OpenURL("https://github.com/monitor1394/unity-ugui-XCharts/stargazers");
}
- if (GUILayout.Button("问题反馈"))
+ if (GUILayout.Button("Issues"))
{
Application.OpenURL("https://github.com/monitor1394/unity-ugui-XCharts/issues");
}
@@ -72,33 +72,33 @@ namespace XCharts
}
else
{
- if (mgr.isCheck) GUILayout.Label("最新版本:检测中...");
- else if (mgr.isNetworkError) GUILayout.Label("检测失败:" + mgr.networkError);
- else GUILayout.Label("最新版本:" + mgr.newVersion);
+ if (mgr.isCheck) GUILayout.Label("The latest version: checking ...");
+ else if (mgr.isNetworkError) GUILayout.Label("check failed: " + mgr.networkError);
+ else GUILayout.Label("The latest version: " + mgr.newVersion);
GUILayout.Label("");
if (!mgr.isNetworkError && !mgr.needUpdate && !mgr.isCheck)
{
- GUILayout.Label("已是最新版本!");
+ GUILayout.Label("It is the latest version!");
}
GUILayout.Label("");
if (!string.IsNullOrEmpty(mgr.desc))
{
GUILayout.Label(mgr.desc);
}
- if (GUILayout.Button("去Github主页"))
+ if (GUILayout.Button("Github Homepage"))
{
Application.OpenURL("https://github.com/monitor1394/unity-ugui-XCharts");
}
- if (GUILayout.Button("点Star支持"))
+ if (GUILayout.Button("Star Support"))
{
Application.OpenURL("https://github.com/monitor1394/unity-ugui-XCharts/stargazers");
}
- if (GUILayout.Button("问题反馈"))
+ if (GUILayout.Button("Issues"))
{
Application.OpenURL("https://github.com/monitor1394/unity-ugui-XCharts/issues");
}
- if (mgr.isNetworkError && GUILayout.Button("重新检测"))
+ if (mgr.isNetworkError && GUILayout.Button("Check Again"))
{
XChartsMgr.Instance.CheckVersion();
}
diff --git a/Editor/CheckVersionEditor.cs.meta b/Editor/Window/CheckVersionEditor.cs.meta
similarity index 83%
rename from Editor/CheckVersionEditor.cs.meta
rename to Editor/Window/CheckVersionEditor.cs.meta
index aaf61b93..0fdb0d68 100644
--- a/Editor/CheckVersionEditor.cs.meta
+++ b/Editor/Window/CheckVersionEditor.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 98d1061c4167c4fff8ed25c3e8be8756
+guid: b2a04cd68c07645d9bb4234680c5200a
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Editor/XChartEditor.cs b/Editor/XChartEditor.cs
index b3f967a2..a0e437bf 100644
--- a/Editor/XChartEditor.cs
+++ b/Editor/XChartEditor.cs
@@ -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;
@@ -12,7 +12,7 @@ using UnityEngine.EventSystems;
namespace XCharts
{
- public class XChartEditor : EditorWindow
+ public class XChartEditor : Editor
{
private static Transform GetParent()
{
@@ -141,5 +141,23 @@ namespace XCharts
{
AddChart("LiquidChart");
}
+
+ [MenuItem("XCharts/Themes Reload")]
+ public static void ReloadTheme()
+ {
+ XChartsMgr.Instance.LoadThemesFromResources();
+ }
+
+ [MenuItem("XCharts/TextMeshPro Enable")]
+ public static void EnableTextMeshPro()
+ {
+ XChartsMgr.EnableTextMeshPro();
+ }
+
+ [MenuItem("XCharts/TextMeshPro Disable")]
+ public static void DisableTextMeshPro()
+ {
+ XChartsMgr.DisableTextMeshPro();
+ }
}
}
\ No newline at end of file
diff --git a/Editor/XChartMgrEditor.cs b/Editor/XChartMgrEditor.cs
index 17be52e7..b08f9d82 100644
--- a/Editor/XChartMgrEditor.cs
+++ b/Editor/XChartMgrEditor.cs
@@ -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;
@@ -40,19 +40,19 @@ namespace XCharts
serializedObject.Update();
EditorGUILayout.PropertyField(m_NowVersion);
EditorGUILayout.PropertyField(m_NewVersion);
- if (GUILayout.Button("检测更新"))
+ if (GUILayout.Button("Check Update"))
{
CheckVersionEditor.ShowWindow();
}
- if (GUILayout.Button("去Github主页"))
+ if (GUILayout.Button("Github Homepage"))
{
Application.OpenURL("https://github.com/monitor1394/unity-ugui-XCharts");
}
- if (GUILayout.Button("点Star支持"))
+ if (GUILayout.Button("Star Support"))
{
Application.OpenURL("https://github.com/monitor1394/unity-ugui-XCharts/stargazers");
}
- if (GUILayout.Button("问题反馈"))
+ if (GUILayout.Button("Issues"))
{
Application.OpenURL("https://github.com/monitor1394/unity-ugui-XCharts/issues");
}
diff --git a/Editor/XCharts.Editor.asmdef b/Editor/XCharts.Editor.asmdef
index 99bc30a0..d7c041af 100644
--- a/Editor/XCharts.Editor.asmdef
+++ b/Editor/XCharts.Editor.asmdef
@@ -1,9 +1,9 @@
{
"name": "XCharts.Editor",
"references": [
- "XCharts.Runtime"
+ "XCharts.Runtime",
+ "Unity.TextMeshPro"
],
- "optionalUnityReferences": [],
"includePlatforms": [
"Editor"
],
@@ -12,5 +12,7 @@
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
- "defineConstraints": []
+ "defineConstraints": [],
+ "versionDefines": [],
+ "noEngineReferences": false
}
\ No newline at end of file
diff --git a/Editor/XChartsSettingsEditor.cs b/Editor/XChartsSettingsEditor.cs
new file mode 100644
index 00000000..20262ea4
--- /dev/null
+++ b/Editor/XChartsSettingsEditor.cs
@@ -0,0 +1,69 @@
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
+
+using System.Collections.Generic;
+using UnityEditor;
+using UnityEngine;
+
+namespace XCharts
+{
+ [CustomEditor(typeof(XChartsSettings))]
+ public class XChartsSettingsEditor : Editor
+ {
+ internal class Styles
+ {
+ public static readonly GUIContent defaultFontAssetLabel = new GUIContent("Default Font Asset", "The Font Asset that will be assigned by default to newly created text objects when no Font Asset is specified.");
+ public static readonly GUIContent defaultFontAssetPathLabel = new GUIContent("Path: Resources/", "The relative path to a Resources folder where the Font Assets and Material Presets are located.\nExample \"Fonts & Materials/\"");
+ }
+ }
+
+#if UNITY_2018_3_OR_NEWER
+ class XChartsResourceImporterProvider : SettingsProvider
+ {
+ XChartsPackageResourceImporter m_ResourceImporter;
+
+ public XChartsResourceImporterProvider()
+ : base("Project/XCharts", SettingsScope.Project)
+ {
+ }
+
+ public override void OnGUI(string searchContext)
+ {
+ if (m_ResourceImporter == null)
+ m_ResourceImporter = new XChartsPackageResourceImporter();
+
+ m_ResourceImporter.OnGUI();
+ }
+
+ public override void OnDeactivate()
+ {
+ if (m_ResourceImporter != null)
+ m_ResourceImporter.OnDestroy();
+ }
+
+ static UnityEngine.Object GetSettings()
+ {
+ return Resources.Load("XChartsSettings");
+ }
+
+ [SettingsProviderGroup]
+ static SettingsProvider[] CreateXChartsSettingsProvider()
+ {
+ var providers = new List { new XChartsResourceImporterProvider() };
+
+ if (GetSettings() != null)
+ {
+ var provider = new AssetSettingsProvider("Project/XCharts/Settings", GetSettings);
+ provider.PopulateSearchKeywordsFromGUIContentProperties();
+ providers.Add(provider);
+ }
+
+ return providers.ToArray();
+ }
+ }
+#endif
+}
\ No newline at end of file
diff --git a/Editor/XChartsSettingsEditor.cs.meta b/Editor/XChartsSettingsEditor.cs.meta
new file mode 100644
index 00000000..953018f6
--- /dev/null
+++ b/Editor/XChartsSettingsEditor.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8353edb72702e4cdda6af0248101d2cd
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Examples/Runtime/Example00_CheatSheet.cs b/Examples/Runtime/Example00_CheatSheet.cs
index 356c26a9..9db4a511 100644
--- a/Examples/Runtime/Example00_CheatSheet.cs
+++ b/Examples/Runtime/Example00_CheatSheet.cs
@@ -1,9 +1,9 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using System.Collections;
using System.Collections.Generic;
@@ -207,7 +207,6 @@ namespace XCharts.Examples
chart.dataZoom.enable = true;
chart.dataZoom.supportInside = true;
chart.dataZoom.supportSlider = true;
- chart.dataZoom.height = 30;
chart.dataZoom.start = 0;
chart.dataZoom.end = 100;
@@ -279,7 +278,7 @@ namespace XCharts.Examples
chart.visualMap.inRange.Clear();
foreach (var str in colors)
{
- chart.visualMap.inRange.Add(ThemeInfo.GetColor(str));
+ chart.visualMap.inRange.Add(ChartTheme.GetColor(str));
}
chart.grid.left = 80;
chart.grid.bottom = 100;
diff --git a/Examples/Runtime/Example01_UpdateData.cs b/Examples/Runtime/Example01_UpdateData.cs
index 41139a51..2c53c1ac 100644
--- a/Examples/Runtime/Example01_UpdateData.cs
+++ b/Examples/Runtime/Example01_UpdateData.cs
@@ -1,9 +1,9 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using UnityEngine;
diff --git a/Examples/Runtime/Example02_ChartEvent.cs b/Examples/Runtime/Example02_ChartEvent.cs
index c1e93af6..b739171b 100644
--- a/Examples/Runtime/Example02_ChartEvent.cs
+++ b/Examples/Runtime/Example02_ChartEvent.cs
@@ -1,9 +1,9 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using UnityEngine;
using UnityEngine.EventSystems;
diff --git a/Examples/Runtime/Example03_ChartAnimation.cs b/Examples/Runtime/Example03_ChartAnimation.cs
index 0c261be3..f54f9091 100644
--- a/Examples/Runtime/Example03_ChartAnimation.cs
+++ b/Examples/Runtime/Example03_ChartAnimation.cs
@@ -1,9 +1,9 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using UnityEngine;
diff --git a/Examples/Runtime/Example10_LineChart.cs b/Examples/Runtime/Example10_LineChart.cs
index 230f2d2d..38c994ff 100644
--- a/Examples/Runtime/Example10_LineChart.cs
+++ b/Examples/Runtime/Example10_LineChart.cs
@@ -1,9 +1,9 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using System.Collections;
using UnityEngine;
@@ -225,8 +225,8 @@ namespace XCharts.Examples
chart.RefreshChart();
yield return new WaitForSeconds(1);
- serie.label.color = Color.white;
- serie.label.backgroundColor = Color.grey;
+ serie.label.textStyle.color = Color.white;
+ serie.label.textStyle.backgroundColor = Color.grey;
chart.RefreshLabel();
chart.RefreshChart();
yield return new WaitForSeconds(1);
diff --git a/Examples/Runtime/Example11_AddSinCurve.cs b/Examples/Runtime/Example11_AddSinCurve.cs
index 344635f8..651c2eae 100644
--- a/Examples/Runtime/Example11_AddSinCurve.cs
+++ b/Examples/Runtime/Example11_AddSinCurve.cs
@@ -1,9 +1,9 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using UnityEngine;
@@ -20,27 +20,26 @@ namespace XCharts.Examples
void Awake()
{
chart = gameObject.GetComponent();
- if (chart != null)
+ if (chart == null)
{
- GameObject.DestroyImmediate(chart);
+ chart = gameObject.AddComponent();
}
- chart = gameObject.AddComponent();
chart.title.show = true;
chart.title.text = "Sin Curve";
chart.tooltip.show = true;
chart.legend.show = false;
- chart.xAxises[0].show = true;
- chart.xAxises[1].show = false;
- chart.yAxises[0].show = true;
- chart.yAxises[1].show = false;
+ chart.xAxes[0].show = true;
+ chart.xAxes[1].show = false;
+ chart.yAxes[0].show = true;
+ chart.yAxes[1].show = false;
- chart.xAxises[0].type = Axis.AxisType.Value;
- chart.yAxises[0].type = Axis.AxisType.Value;
+ chart.xAxes[0].type = Axis.AxisType.Value;
+ chart.yAxes[0].type = Axis.AxisType.Value;
- chart.xAxises[0].boundaryGap = false;
- chart.xAxises[0].maxCache = 0;
+ chart.xAxes[0].boundaryGap = false;
+ chart.xAxes[0].maxCache = 0;
chart.series.list[0].maxCache = 0;
chart.RemoveData();
diff --git a/Examples/Runtime/Example12_CustomDrawing.cs b/Examples/Runtime/Example12_CustomDrawing.cs
index e8c88e12..a99800a9 100644
--- a/Examples/Runtime/Example12_CustomDrawing.cs
+++ b/Examples/Runtime/Example12_CustomDrawing.cs
@@ -1,12 +1,13 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using UnityEngine;
using UnityEngine.UI;
+using XUGL;
namespace XCharts.Examples
@@ -27,11 +28,11 @@ namespace XCharts.Examples
if (dataPoints.Count > 0)
{
var pos = dataPoints[3];
- var zeroPos = new Vector3(chart.coordinateX, chart.coordinateY);
+ var zeroPos = new Vector3(chart.grid.runtimeX, chart.grid.runtimeY);
var startPos = new Vector3(pos.x, zeroPos.y);
- var endPos = new Vector3(pos.x, zeroPos.y + chart.coordinateHeight);
- ChartDrawer.DrawLine(vh, startPos, endPos, 1, Color.blue);
- ChartDrawer.DrawCricle(vh, pos, 5, Color.blue);
+ var endPos = new Vector3(pos.x, zeroPos.y + chart.grid.runtimeWidth);
+ UGL.DrawLine(vh, startPos, endPos, 1, Color.blue);
+ UGL.DrawCricle(vh, pos, 5, Color.blue);
}
};
}
diff --git a/Examples/Runtime/Example13_LineSimple.cs b/Examples/Runtime/Example13_LineSimple.cs
index 95ceb6b4..b76eb79c 100644
--- a/Examples/Runtime/Example13_LineSimple.cs
+++ b/Examples/Runtime/Example13_LineSimple.cs
@@ -1,9 +1,9 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using UnityEngine;
@@ -27,20 +27,20 @@ namespace XCharts.Examples
chart.tooltip.show = true;
chart.legend.show = false;
- chart.xAxises[0].show = true;
- chart.xAxises[1].show = false;
- chart.yAxises[0].show = true;
- chart.yAxises[1].show = false;
- chart.xAxises[0].type = Axis.AxisType.Category;
- chart.yAxises[0].type = Axis.AxisType.Value;
+ chart.xAxes[0].show = true;
+ chart.xAxes[1].show = false;
+ chart.yAxes[0].show = true;
+ chart.yAxes[1].show = false;
+ chart.xAxes[0].type = Axis.AxisType.Category;
+ chart.yAxes[0].type = Axis.AxisType.Value;
- chart.xAxises[0].splitNumber = 10;
- chart.xAxises[0].boundaryGap = true;
+ chart.xAxes[0].splitNumber = 10;
+ chart.xAxes[0].boundaryGap = true;
chart.RemoveData();
chart.AddSerie(SerieType.Line);
chart.AddSerie(SerieType.Line);
- for (int i = 0; i < 10; i++)
+ for (int i = 0; i < 2000; i++)
{
chart.AddXAxisData("x" + i);
chart.AddData(0, Random.Range(10, 20));
diff --git a/Examples/Runtime/Example20_BarChart.cs b/Examples/Runtime/Example20_BarChart.cs
index a2c8f85c..38c139e7 100644
--- a/Examples/Runtime/Example20_BarChart.cs
+++ b/Examples/Runtime/Example20_BarChart.cs
@@ -1,9 +1,9 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using System.Collections;
using UnityEngine;
@@ -150,13 +150,13 @@ namespace XCharts.Examples
serie.label.show = true;
serie.label.position = SerieLabel.Position.Center;
serie.label.border = false;
- serie.label.color = Color.white;
+ serie.label.textStyle.color = Color.white;
serie.label.formatter = "{d:f0}%";
serie2.label.show = true;
serie2.label.position = SerieLabel.Position.Center;
serie2.label.border = false;
- serie2.label.color = Color.white;
+ serie2.label.textStyle.color = Color.white;
serie2.label.formatter = "{d:f0}%";
chart.RefreshLabel();
diff --git a/Examples/Runtime/Example30_PieChart.cs b/Examples/Runtime/Example30_PieChart.cs
index 2038b494..5e3774dc 100644
--- a/Examples/Runtime/Example30_PieChart.cs
+++ b/Examples/Runtime/Example30_PieChart.cs
@@ -1,12 +1,13 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using System.Collections;
using UnityEngine;
+using UnityEngine.EventSystems;
namespace XCharts.Examples
{
@@ -76,6 +77,10 @@ namespace XCharts.Examples
chart.AddData(0, 135, "视频广告");
chart.AddData(0, 1548, "搜索引擎");
chart.RefreshLabel();
+
+ chart.onPointerClickPie = delegate(PointerEventData e, int serieIndex, int dataIndex){
+
+ };
yield return new WaitForSeconds(1);
}
@@ -148,8 +153,8 @@ namespace XCharts.Examples
serie1.label.show = true;
serie1.label.position = SerieLabel.Position.Inside;
- serie1.label.color = Color.white;
- serie1.label.fontSize = 14;
+ serie1.label.textStyle.color = Color.white;
+ serie1.label.textStyle.fontSize = 14;
serie1.label.border = false;
chart.RefreshLabel();
@@ -166,7 +171,7 @@ namespace XCharts.Examples
serie1.radius = serie.radius = new float[2] { 0, 80 };
serie1.label.position = SerieLabel.Position.Outside;
serie1.label.lineType = SerieLabel.LineType.Curves;
- serie1.label.color = Color.clear;
+ serie1.label.textStyle.color = Color.clear;
for (int i = 0; i < 2; i++)
{
chart.AddData(i, 10, "rose1");
diff --git a/Examples/Runtime/Example31_PieUpdateName.cs b/Examples/Runtime/Example31_PieUpdateName.cs
index e8e49edc..2e0a5bac 100644
--- a/Examples/Runtime/Example31_PieUpdateName.cs
+++ b/Examples/Runtime/Example31_PieUpdateName.cs
@@ -1,9 +1,9 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using UnityEngine;
using UnityEngine.UI;
diff --git a/Examples/Runtime/Example40_Radar.cs b/Examples/Runtime/Example40_Radar.cs
index 45a023c0..e838efa9 100644
--- a/Examples/Runtime/Example40_Radar.cs
+++ b/Examples/Runtime/Example40_Radar.cs
@@ -1,9 +1,9 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using System.Collections;
using System.Collections.Generic;
diff --git a/Examples/Runtime/Example41_RadarUpdate.cs b/Examples/Runtime/Example41_RadarUpdate.cs
index 5d86ade1..c6d9bd16 100644
--- a/Examples/Runtime/Example41_RadarUpdate.cs
+++ b/Examples/Runtime/Example41_RadarUpdate.cs
@@ -1,9 +1,9 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using UnityEngine;
using UnityEngine.UI;
diff --git a/Examples/Runtime/Example50_Scatter.cs b/Examples/Runtime/Example50_Scatter.cs
index ac5a2690..0cb57ed1 100644
--- a/Examples/Runtime/Example50_Scatter.cs
+++ b/Examples/Runtime/Example50_Scatter.cs
@@ -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 UnityEngine;
diff --git a/Examples/Runtime/Example60_Heatmap.cs b/Examples/Runtime/Example60_Heatmap.cs
index 3f62f27d..8b64d8f3 100644
--- a/Examples/Runtime/Example60_Heatmap.cs
+++ b/Examples/Runtime/Example60_Heatmap.cs
@@ -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 UnityEngine;
@@ -29,14 +29,14 @@ namespace XCharts.Examples
chart.grid.right = 60;
chart.grid.bottom = 60;
//目前只支持Category
- chart.xAxises[0].type = Axis.AxisType.Category;
- chart.yAxises[0].type = Axis.AxisType.Category;
+ chart.xAxes[0].type = Axis.AxisType.Category;
+ chart.yAxes[0].type = Axis.AxisType.Category;
- chart.xAxises[0].boundaryGap = true;
- chart.xAxises[0].boundaryGap = true;
+ chart.xAxes[0].boundaryGap = true;
+ chart.xAxes[0].boundaryGap = true;
- chart.xAxises[0].splitNumber = 10;
- chart.yAxises[0].splitNumber = 10;
+ chart.xAxes[0].splitNumber = 10;
+ chart.yAxes[0].splitNumber = 10;
//清空数据重新添加
chart.RemoveData();
@@ -68,13 +68,13 @@ namespace XCharts.Examples
chart.visualMap.inRange.Clear();
var heatmapGridWid = 10f;
- int xSplitNumber = (int)(chart.coordinateWidth / heatmapGridWid);
- int ySplitNumber = (int)(chart.coordinateHeight / heatmapGridWid);
+ int xSplitNumber = (int)(chart.grid.runtimeWidth / heatmapGridWid);
+ int ySplitNumber = (int)(chart.grid.runtimeHeight / heatmapGridWid);
var colors = new List{"#313695", "#4575b4", "#74add1", "#abd9e9", "#e0f3f8", "#ffffbf",
"#fee090", "#fdae61", "#f46d43", "#d73027", "#a50026"};
foreach (var str in colors)
{
- chart.visualMap.inRange.Add(ThemeInfo.GetColor(str));
+ chart.visualMap.inRange.Add(ChartTheme.GetColor(str));
}
//添加xAxis的数据
for (int i = 0; i < xSplitNumber; i++)
diff --git a/Examples/Runtime/Example70_Gauge.cs b/Examples/Runtime/Example70_Gauge.cs
index c38a899c..bc32b80c 100644
--- a/Examples/Runtime/Example70_Gauge.cs
+++ b/Examples/Runtime/Example70_Gauge.cs
@@ -1,10 +1,10 @@
using System.Runtime.InteropServices;
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using UnityEngine;
@@ -47,7 +47,7 @@ namespace XCharts.Examples
serie.label.offset = new Vector3(0, -20);
serie.gaugeAxis.show = true;
- serie.gaugeAxis.axisLine.width = 15;
+ serie.gaugeAxis.axisLine.lineStyle.width = 15;
serie.gaugePointer.show = true;
serie.gaugePointer.width = 15;
diff --git a/Examples/Runtime/Example80_Polar.cs b/Examples/Runtime/Example80_Polar.cs
index e644786b..4e695d0c 100644
--- a/Examples/Runtime/Example80_Polar.cs
+++ b/Examples/Runtime/Example80_Polar.cs
@@ -1,10 +1,10 @@
using System.Runtime.InteropServices;
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using UnityEngine;
diff --git a/Examples/Runtime/Example_Dynamic.cs b/Examples/Runtime/Example_Dynamic.cs
index 09b68a40..62c489a3 100644
--- a/Examples/Runtime/Example_Dynamic.cs
+++ b/Examples/Runtime/Example_Dynamic.cs
@@ -1,9 +1,9 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using System;
using UnityEngine;
@@ -33,7 +33,7 @@ namespace XCharts.Examples
var serie = chart.AddSerie(SerieType.Line);
serie.symbol.show = false;
serie.maxCache = maxCacheDataNumber;
- chart.xAxises[0].maxCache = maxCacheDataNumber;
+ chart.xAxes[0].maxCache = maxCacheDataNumber;
timeNow = DateTime.Now;
timeNow = timeNow.AddSeconds(-maxCacheDataNumber);
}
diff --git a/Examples/Runtime/Example_LargeData.cs b/Examples/Runtime/Example_LargeData.cs
index cbcf94fc..da10cf79 100644
--- a/Examples/Runtime/Example_LargeData.cs
+++ b/Examples/Runtime/Example_LargeData.cs
@@ -1,9 +1,9 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using UnityEngine;
diff --git a/Examples/Runtime/Example_PieChart.cs b/Examples/Runtime/Example_PieChart.cs
index e122ead9..0b043eb7 100644
--- a/Examples/Runtime/Example_PieChart.cs
+++ b/Examples/Runtime/Example_PieChart.cs
@@ -1,9 +1,9 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using UnityEngine;
diff --git a/Examples/Runtime/Example_Test.cs b/Examples/Runtime/Example_Test.cs
index 2f661449..39034abd 100644
--- a/Examples/Runtime/Example_Test.cs
+++ b/Examples/Runtime/Example_Test.cs
@@ -1,9 +1,9 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using UnityEngine;
using UnityEngine.UI;
@@ -14,10 +14,10 @@ namespace XCharts.Examples
[ExecuteInEditMode]
public class Example_Test : MonoBehaviour
{
- BaseChart chart;
+ LineChart chart;
void Awake()
{
- chart = gameObject.GetComponent();
+ chart = gameObject.GetComponent();
var btnTrans = transform.parent.Find("Button");
if (btnTrans)
{
@@ -29,14 +29,16 @@ namespace XCharts.Examples
{
if (Input.GetKeyDown(KeyCode.Space))
{
- AddData();
+ //AddData();
+ OnTestBtn();
}
}
void OnTestBtn()
{
- //chart.ClearData();
- chart.SetSize(800,400);
+ int index = Random.Range(0, chart.series.Count);
+ var serie = chart.series.GetSerie(index);
+ chart.UpdateData(index, Random.Range(0, serie.dataCount), Random.Range(50, 100));
}
void AddData()
diff --git a/Resources.meta b/Resources.meta
new file mode 100644
index 00000000..f5614c78
--- /dev/null
+++ b/Resources.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0e3168b99564b477a83640c24b713f0c
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Resources/XChartsSettings.asset b/Resources/XChartsSettings.asset
new file mode 100644
index 00000000..0e5b7337
--- /dev/null
+++ b/Resources/XChartsSettings.asset
@@ -0,0 +1,48 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 3694d869548264b718bdfc6c8009dcf1, type: 3}
+ m_Name: XChartsSettings
+ m_EditorClassIdentifier:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSizeLv1: 24
+ m_FontSizeLv2: 22
+ m_FontSizeLv3: 20
+ m_FontSizeLv4: 18
+ m_AxisLineType: 0
+ m_AxisLineWidth: 0.8
+ m_AxisSplitLineType: 0
+ m_AxisSplitLineWidth: 0.8
+ m_AxisTickWidth: 0.8
+ m_AxisTickLength: 5
+ m_GaugeAxisLineWidth: 15
+ m_GaugeAxisSplitLineWidth: 0.8
+ m_GaugeAxisSplitLineLength: 15
+ m_GaugeAxisTickWidth: 0.8
+ m_GaugeAxisTickLength: 5
+ m_TootipLineWidth: 0.8
+ m_DataZoomBorderWidth: 0.5
+ m_DataZoomDataLineWidth: 0.5
+ m_VisualMapBorderWidth: 0
+ m_SerieLineWidth: 1.4
+ m_SerieLineSymbolSize: 4
+ m_SerieLineSymbolSelectedSize: 8
+ m_SerieScatterSymbolSize: 20
+ m_SerieScatterSymbolSelectedSize: 30
+ m_EditorBlockEnable: 1
+ m_MaxPainter: 10
+ m_LineSmoothStyle: 3
+ m_LineSmoothness: 2
+ m_LineSegmentDistance: 3
+ m_CicleSmoothness: 2
+ m_VisualMapTriangeLen: 20
+ m_PieTooltipExtraRadius: 8
+ m_PieSelectedOffset: 8
diff --git a/Resources/XChartsSettings.asset.meta b/Resources/XChartsSettings.asset.meta
new file mode 100644
index 00000000..c83763d1
--- /dev/null
+++ b/Resources/XChartsSettings.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 676e1e322123d4fe2a761de3ef14235f
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/API/BarChart_API.cs b/Runtime/API/BarChart_API.cs
index 6ba5b351..8cbe135d 100644
--- a/Runtime/API/BarChart_API.cs
+++ b/Runtime/API/BarChart_API.cs
@@ -1,9 +1,9 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using UnityEngine;
using System;
diff --git a/Runtime/API/BaseChart_API.cs b/Runtime/API/BaseChart_API.cs
index b8bd16dc..8f31e40e 100644
--- a/Runtime/API/BaseChart_API.cs
+++ b/Runtime/API/BaseChart_API.cs
@@ -1,14 +1,15 @@
-/******************************************/
-/* */
-/* Copyright (c) 2018 monitor1394 */
-/* https://github.com/monitor1394 */
-/* */
-/******************************************/
+/************************************************/
+/* */
+/* Copyright (c) 2018 - 2021 monitor1394 */
+/* https://github.com/monitor1394 */
+/* */
+/************************************************/
using UnityEngine;
using System.Collections.Generic;
using System;
using UnityEngine.UI;
+using UnityEngine.EventSystems;
namespace XCharts
{
@@ -37,24 +38,26 @@ namespace XCharts
}
}
///
- /// The theme info.
+ /// The theme.
///
- public ThemeInfo themeInfo { get { return m_ThemeInfo; } set { m_ThemeInfo = value; } }
+ public ChartTheme theme { get { return m_Theme; } set { m_Theme = value; } }
///
/// The title setting of chart.
/// 标题组件
///
- public Title title { get { return m_Title; } }
+ public Title title { get { return m_Titles.Count > 0 ? m_Titles[0] : null; } }
+ public List titles { get { return m_Titles; } }
///
/// The legend setting of chart.
/// 图例组件
///
- public Legend legend { get { return m_Legend; } }
+ public Legend legend { get { return m_Legends.Count > 0 ? m_Legends[0] : null; } }
+ public List