Skip to content

Commit 968e96a

Browse files
committed
initial commit, POC for drawing horizontal and vertical indicators on canvas instead of delegating to composables
cleanup required, but it's working general cleanup, remove unused, apply formatting bugfix: coerce to inset bounds, check before `showPopup` unnecessary remove draw grid in favor of calculated heights/widths of indicators/labels, add `drawTicks`, use ticks passed from `insetDrawScope` within `LineChartCanvas`. Added test cases to initial chart in `PhoneSample` couple fixes fix errors after removing dividerProperties
1 parent 8535289 commit 968e96a

5 files changed

Lines changed: 439 additions & 226 deletions

File tree

app/src/commonMain/kotlin/ir/ehsannarmani/compose_charts/ui/LineSample.kt

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package ir.ehsannarmani.compose_charts.ui
33
import androidx.compose.animation.core.EaseInOutCubic
44
import androidx.compose.animation.core.tween
55
import androidx.compose.foundation.layout.Box
6-
import androidx.compose.foundation.layout.RowScope
76
import androidx.compose.foundation.layout.fillMaxSize
87
import androidx.compose.foundation.layout.padding
98
import androidx.compose.runtime.Composable
@@ -136,7 +135,6 @@ fun LineSample(modifier: Modifier=Modifier) {
136135
it * 500L
137136
}),
138137
gridProperties = gridProperties,
139-
dividerProperties = dividerProperties,
140138
indicatorProperties = HorizontalIndicatorProperties(
141139
textStyle = TextStyle(
142140
fontSize = 11.sp,
@@ -191,14 +189,6 @@ fun LineSample2(modifier: Modifier=Modifier) {
191189
thickness = .5.dp
192190
)
193191
),
194-
dividerProperties = DividerProperties(
195-
yAxisProperties = LineProperties(enabled = false),
196-
xAxisProperties = LineProperties(
197-
thickness = .5.dp,
198-
color = SolidColor(Color.Gray.copy(alpha = .5f)),
199-
style = StrokeStyle.Dashed(intervals = floatArrayOf(15f,15f), phase = 10f),
200-
)
201-
),
202192
popupProperties = PopupProperties(
203193
textStyle = TextStyle(
204194
fontSize = 11.sp,
@@ -294,7 +284,6 @@ fun LineSample3(modifier: Modifier=Modifier) {
294284
it * 500L
295285
}),
296286
gridProperties = gridProperties,
297-
dividerProperties = dividerProperties,
298287
popupProperties = PopupProperties(
299288
textStyle = TextStyle(
300289
fontSize = 11.sp,
@@ -372,7 +361,6 @@ fun LineSample4(modifier: Modifier=Modifier) {
372361
it * 500L
373362
}),
374363
gridProperties = gridProperties,
375-
dividerProperties = dividerProperties,
376364
popupProperties = PopupProperties(
377365
textStyle = TextStyle(
378366
fontSize = 11.sp,
@@ -432,7 +420,6 @@ fun LineSample5(modifier: Modifier=Modifier) {
432420
it * 500L
433421
}),
434422
gridProperties = gridProperties,
435-
dividerProperties = dividerProperties,
436423
popupProperties = PopupProperties(
437424
textStyle = TextStyle(
438425
fontSize = 11.sp,
@@ -532,7 +519,6 @@ fun LineSample6(modifier: Modifier=Modifier) {
532519
it * 500L
533520
}),
534521
gridProperties = gridProperties,
535-
dividerProperties = dividerProperties,
536522
popupProperties = PopupProperties(
537523
textStyle = TextStyle(
538524
fontSize = 11.sp,
@@ -601,7 +587,6 @@ fun LineSample7(modifier: Modifier=Modifier) {
601587
it * 500L
602588
}),
603589
gridProperties = gridProperties,
604-
dividerProperties = dividerProperties,
605590
popupProperties = PopupProperties(
606591
textStyle = TextStyle(
607592
fontSize = 11.sp,
@@ -660,7 +645,6 @@ fun LineSample8(modifier: Modifier=Modifier) {
660645
animationMode = AnimationMode.Together(delayBuilder = {
661646
it * 500L
662647
}),
663-
dividerProperties = DividerProperties(enabled = false),
664648
gridProperties = GridProperties(enabled = false),
665649
popupProperties = PopupProperties(
666650
textStyle = TextStyle(
@@ -710,7 +694,6 @@ fun LineSample9(modifier: Modifier=Modifier) {
710694
it * 500L
711695
}),
712696
gridProperties = gridProperties,
713-
dividerProperties = dividerProperties,
714697
popupProperties = PopupProperties(
715698
textStyle = TextStyle(
716699
fontSize = 11.sp,

app/src/commonMain/kotlin/ir/ehsannarmani/compose_charts/ui/PhoneSample.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@ import androidx.compose.runtime.remember
1010
import androidx.compose.ui.Modifier
1111
import androidx.compose.ui.graphics.Color
1212
import androidx.compose.ui.graphics.SolidColor
13-
import androidx.compose.ui.graphics.drawscope.DrawStyle
1413
import androidx.compose.ui.text.TextStyle
1514
import androidx.compose.ui.unit.dp
1615
import androidx.compose.ui.unit.sp
1716
import ir.ehsannarmani.compose_charts.LineChart
1817
import ir.ehsannarmani.compose_charts.models.AnimationMode
1918
import ir.ehsannarmani.compose_charts.models.DotProperties
19+
import ir.ehsannarmani.compose_charts.models.HorizontalIndicatorProperties
20+
import ir.ehsannarmani.compose_charts.models.IndicatorPosition
2021
import ir.ehsannarmani.compose_charts.models.Line
2122
import ir.ehsannarmani.compose_charts.models.PopupProperties
22-
import ir.ehsannarmani.compose_charts.models.StrokeStyle
2323

2424
@Composable
2525
fun PhoneSample() {
@@ -67,7 +67,10 @@ fun PhoneSample() {
6767
false
6868
}
6969
),
70-
70+
indicatorProperties = HorizontalIndicatorProperties(
71+
indicators = (0..7).map { it.toDouble() } + listOf(5.5),
72+
position = IndicatorPosition.Horizontal.End
73+
)
7174
)
7275
}
7376
}

0 commit comments

Comments
 (0)