Skip to content

Commit

Permalink
Introduce HorizontalLayout (WIP)
Browse files Browse the repository at this point in the history
Co-authored-by: Patryk Goworowski <patrykgoworowski@gmail.com>
  • Loading branch information
patrickmichalik and Gowsky committed Jul 2, 2023
1 parent 78cbe69 commit 61e854b
Show file tree
Hide file tree
Showing 60 changed files with 812 additions and 942 deletions.
7 changes: 3 additions & 4 deletions .idea/detekt-config.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ import com.patrykandpatrick.vico.compose.component.overlayingComponent
import com.patrykandpatrick.vico.compose.component.shapeComponent
import com.patrykandpatrick.vico.compose.component.textComponent
import com.patrykandpatrick.vico.compose.dimensions.dimensionsOf
import com.patrykandpatrick.vico.core.chart.dimensions.HorizontalDimensions
import com.patrykandpatrick.vico.core.chart.insets.Insets
import com.patrykandpatrick.vico.core.chart.segment.SegmentProperties
import com.patrykandpatrick.vico.core.component.marker.MarkerComponent
import com.patrykandpatrick.vico.core.component.shape.DashedShape
import com.patrykandpatrick.vico.core.component.shape.ShapeComponent
Expand Down Expand Up @@ -86,12 +86,15 @@ internal fun rememberMarker(): Marker {
}
}

override fun getInsets(context: MeasureContext, outInsets: Insets, segmentProperties: SegmentProperties) =
with(context) {
outInsets.top = label.getHeight(context) + labelBackgroundShape.tickSizeDp.pixels +
LABEL_BACKGROUND_SHADOW_RADIUS.pixels * SHADOW_RADIUS_MULTIPLIER -
LABEL_BACKGROUND_SHADOW_DY.pixels
}
override fun getInsets(
context: MeasureContext,
outInsets: Insets,
horizontalDimensions: HorizontalDimensions,
) = with(context) {
outInsets.top = label.getHeight(context) + labelBackgroundShape.tickSizeDp.pixels +
LABEL_BACKGROUND_SHADOW_RADIUS.pixels * SHADOW_RADIUS_MULTIPLIER -
LABEL_BACKGROUND_SHADOW_DY.pixels
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,17 @@ import com.patrykandpatrick.vico.compose.component.textComponent
import com.patrykandpatrick.vico.compose.dimensions.dimensionsOf
import com.patrykandpatrick.vico.compose.style.ProvideChartStyle
import com.patrykandpatrick.vico.compose.style.currentChartStyle
import com.patrykandpatrick.vico.core.DefaultDimens
import com.patrykandpatrick.vico.core.axis.AxisPosition
import com.patrykandpatrick.vico.core.axis.formatter.PercentageFormatAxisValueFormatter
import com.patrykandpatrick.vico.core.axis.horizontal.HorizontalAxis
import com.patrykandpatrick.vico.core.axis.vertical.VerticalAxis
import com.patrykandpatrick.vico.core.chart.decoration.ThresholdLine
import com.patrykandpatrick.vico.core.chart.layout.HorizontalLayout
import com.patrykandpatrick.vico.core.component.shape.LineComponent
import com.patrykandpatrick.vico.core.component.shape.Shapes
import com.patrykandpatrick.vico.core.entry.ChartEntryModelProducer
import com.patrykandpatrick.vico.core.extension.half
import com.patrykandpatrick.vico.databinding.Chart2Binding
import com.patrykandpatrick.vico.sample.showcase.UISystem
import com.patrykandpatrick.vico.sample.showcase.rememberChartStyle
Expand Down Expand Up @@ -68,8 +71,9 @@ private fun ComposeChart2(chartEntryModelProducer: ChartEntryModelProducer) {
),
chartModelProducer = chartEntryModelProducer,
startAxis = startAxis(valueFormatter = startAxisValueFormatter, maxLabelCount = START_AXIS_LABEL_COUNT),
bottomAxis = bottomAxis(tickPosition = bottomAxisTickPosition),
bottomAxis = bottomAxis(labelSpacing = BOTTOM_AXIS_LABEL_SPACING, labelOffset = BOTTOM_AXIS_LABEL_OFFSET),
marker = rememberMarker(),
horizontalLayout = horizontalLayout,
)
}
}
Expand All @@ -86,6 +90,10 @@ private fun ViewChart2(chartEntryModelProducer: ChartEntryModelProducer) {
maxLabelCount = START_AXIS_LABEL_COUNT
valueFormatter = startAxisValueFormatter
}
with(bottomAxis as HorizontalAxis) {
labelSpacing = BOTTOM_AXIS_LABEL_SPACING
labelOffset = BOTTOM_AXIS_LABEL_OFFSET
}
this.marker = marker
}
}
Expand All @@ -111,8 +119,8 @@ private const val COLOR_2_CODE = 0xffd3d826
private const val COLUMN_WIDTH_DP = 16f
private const val THRESHOLD_LINE_VALUE = 13f
private const val START_AXIS_LABEL_COUNT = 6
private const val BOTTOM_AXIS_TICK_OFFSET = 1
private const val BOTTOM_AXIS_TICK_SPACING = 3
private const val BOTTOM_AXIS_LABEL_SPACING = 3
private const val BOTTOM_AXIS_LABEL_OFFSET = 1

private val color1 = Color(COLOR_1_CODE)
private val color2 = Color(COLOR_2_CODE)
Expand All @@ -125,5 +133,7 @@ private val thresholdLineLabelPadding =
dimensionsOf(thresholdLineLabelHorizontalPaddingValue, thresholdLineLabelVerticalPaddingValue)
private val thresholdLineLabelMargins = dimensionsOf(thresholdLineLabelMarginValue)
private val startAxisValueFormatter = PercentageFormatAxisValueFormatter<AxisPosition.Vertical.Start>()
private val bottomAxisTickPosition =
HorizontalAxis.TickPosition.Center(BOTTOM_AXIS_TICK_OFFSET, BOTTOM_AXIS_TICK_SPACING)
private val horizontalLayout = HorizontalLayout.FullWidth(
startPaddingDp = DefaultDimens.COLUMN_OUTSIDE_SPACING.half,
endPaddingDp = DefaultDimens.COLUMN_OUTSIDE_SPACING.half,
)
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,14 @@ import com.patrykandpatrick.vico.compose.axis.horizontal.bottomAxis
import com.patrykandpatrick.vico.compose.axis.vertical.startAxis
import com.patrykandpatrick.vico.compose.chart.Chart
import com.patrykandpatrick.vico.compose.chart.edges.rememberFadingEdges
import com.patrykandpatrick.vico.compose.chart.layout.fullWidth
import com.patrykandpatrick.vico.compose.chart.line.lineChart
import com.patrykandpatrick.vico.compose.component.shapeComponent
import com.patrykandpatrick.vico.compose.component.textComponent
import com.patrykandpatrick.vico.compose.dimensions.dimensionsOf
import com.patrykandpatrick.vico.compose.style.ProvideChartStyle
import com.patrykandpatrick.vico.core.axis.vertical.VerticalAxis
import com.patrykandpatrick.vico.core.chart.layout.HorizontalLayout
import com.patrykandpatrick.vico.core.chart.line.LineChart
import com.patrykandpatrick.vico.core.chart.values.AxisValuesOverrider
import com.patrykandpatrick.vico.core.component.shape.Shapes
Expand All @@ -54,7 +56,7 @@ internal fun Chart3(uiSystem: UISystem, chartEntryModelProducer: ChartEntryModel
private fun ComposeChart3(chartEntryModelProducer: ChartEntryModelProducer) {
ProvideChartStyle(rememberChartStyle(chartColors)) {
Chart(
chart = lineChart(pointPosition = LineChart.PointPosition.Start, axisValuesOverrider = axisValueOverrider),
chart = lineChart(axisValuesOverrider = axisValueOverrider),
chartModelProducer = chartEntryModelProducer,
startAxis = startAxis(
guideline = null,
Expand All @@ -80,6 +82,7 @@ private fun ComposeChart3(chartEntryModelProducer: ChartEntryModelProducer) {
),
marker = rememberMarker(),
fadingEdges = rememberFadingEdges(),
horizontalLayout = horizontalLayout,
)
}
}
Expand Down Expand Up @@ -109,3 +112,4 @@ private val axisTitlePadding = dimensionsOf(axisTitleHorizontalPaddingValue, axi
private val axisTitleMarginValue = 4.dp
private val startAxisTitleMargins = dimensionsOf(end = axisTitleMarginValue)
private val bottomAxisTitleMargins = dimensionsOf(top = axisTitleMarginValue)
private val horizontalLayout = HorizontalLayout.fullWidth()
3 changes: 3 additions & 0 deletions sample/src/main/res/layout/chart_2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@
app:axisStyle="@style/Chart2AxisStyle"
app:chart="column"
app:columnChartStyle="@style/Chart2ColumnChartStyle"
app:horizontalLayout="fullWidth"
app:endContentPadding="16dp"
app:startContentPadding="16dp"
app:showBottomAxis="true"
app:showStartAxis="true" />
</FrameLayout>
1 change: 1 addition & 0 deletions sample/src/main/res/layout/chart_3.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
app:chart="line"
app:fadingEdgeVisibilityInterpolator="androidx.interpolator.view.animation.FastOutSlowInInterpolator"
app:fadingEdgeWidth="32dp"
app:horizontalLayout="fullWidth"
app:lineChartStyle="@style/Chart3LineChartStyle"
app:showBottomAxis="true"
app:showStartAxis="true"
Expand Down
5 changes: 2 additions & 3 deletions sample/src/main/res/values/chart_2_styles.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,8 @@
</style>

<style name="Chart2AxisStyle">
<item name="horizontalAxisTickPosition">center</item>
<item name="horizontalAxisTickOffset">1</item>
<item name="horizontalAxisTickSpacing">3</item>
<item name="horizontalAxisLabelSpacing">3</item>
<item name="horizontalAxisLabelOffset">1</item>
</style>

<style name="Chart2ColumnChartStyle">
Expand Down
1 change: 0 additions & 1 deletion sample/src/main/res/values/chart_3_styles.xml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@

<style name="Chart3LineChartStyle">
<item name="line1Spec">@style/Chart3Line1Style</item>
<item name="pointPosition">start</item>
</style>

<style name="Chart3StartAxisStyle" parent="Chart3AxisStyle">
Expand Down
Loading

0 comments on commit 61e854b

Please sign in to comment.