Skip to content

Commit ba98bda

Browse files
committed
Convert modules to objects
1 parent 2739075 commit ba98bda

File tree

8 files changed

+30
-22
lines changed

8 files changed

+30
-22
lines changed

core/src/main/scala/eu/joaocosta/interim/InterIm.scala

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package eu.joaocosta.interim
22

33
import eu.joaocosta.interim.TextLayout.*
44

5-
object InterIm extends api.Primitives with api.Layouts with api.Components with api.Constants:
5+
object InterIm:
66
def window[T](inputState: InputState, uiState: UiState)(
77
run: (inputState: InputState, uiState: UiState) ?=> T
88
): (List[RenderOp], T) =
@@ -17,3 +17,8 @@ object InterIm extends api.Primitives with api.Layouts with api.Components with
1717
if (!inputState.mouseDown) uiState.activeItem = None
1818
// return
1919
(uiState.ops.toList, res)
20+
21+
export api.Primitives.*
22+
export api.Layouts.*
23+
export api.Components.*
24+
export api.Constants.*

core/src/main/scala/eu/joaocosta/interim/api/Components.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package eu.joaocosta.interim.api
33
import eu.joaocosta.interim.*
44
import eu.joaocosta.interim.skins.*
55

6-
trait Components:
6+
object Components:
77

88
type Component[+T] = (inputState: InputState, uiState: UiState) ?=> T
99

core/src/main/scala/eu/joaocosta/interim/api/Constants.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package eu.joaocosta.interim.api
22

33
import eu.joaocosta.interim.TextLayout.{HorizontalAlignment, VerticalAlignment}
44

5-
trait Constants:
5+
object Constants:
66
final val alignLeft = HorizontalAlignment.Left
77
final val centerHorizontally = HorizontalAlignment.Center
88
final val alignRight = HorizontalAlignment.Right

core/src/main/scala/eu/joaocosta/interim/api/Layouts.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package eu.joaocosta.interim.api
22

33
import eu.joaocosta.interim.Rect
44

5-
trait Layouts:
5+
object Layouts:
66
def grid[T](area: Rect, numRows: Int, numColumns: Int, padding: Int)(body: Vector[Vector[Rect]] => T): T =
77
body(rows(area, numRows, padding)(_.map(subArea => columns(subArea, numColumns, padding)(identity))))
88

core/src/main/scala/eu/joaocosta/interim/api/Primitives.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package eu.joaocosta.interim.api
33
import eu.joaocosta.interim.TextLayout.{HorizontalAlignment, VerticalAlignment}
44
import eu.joaocosta.interim.{Color, Rect, RenderOp, UiState}
55

6-
trait Primitives:
6+
object Primitives:
77
def rectangle(area: Rect, color: Color)(implicit uiState: UiState): Unit =
88
uiState.ops.addOne(RenderOp.DrawRect(area, color))
99

core/src/main/scala/eu/joaocosta/interim/skins/ButtonSkin.scala

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package eu.joaocosta.interim.skins
22

33
import eu.joaocosta.interim.TextLayout.*
44
import eu.joaocosta.interim.*
5+
import eu.joaocosta.interim.api.Primitives.*
56

67
trait ButtonSkin:
78
def buttonArea(area: Rect): Rect
@@ -25,21 +26,21 @@ object ButtonSkin:
2526
uiState: UiState
2627
): Unit =
2728
val buttonArea = this.buttonArea(area)
28-
InterIm.rectangle(
29+
rectangle(
2930
buttonArea.move(dx = shadowDelta, dy = shadowDelta),
3031
shadowColor
3132
) // Shadow
3233
itemStatus match
3334
case UiState.ItemStatus(false, false) =>
34-
InterIm.rectangle(buttonArea, inactiveColor)
35-
InterIm.text(buttonArea, label, fontSize, textColor, HorizontalAlignment.Center, VerticalAlignment.Center)
35+
rectangle(buttonArea, inactiveColor)
36+
text(buttonArea, label, fontSize, textColor, HorizontalAlignment.Center, VerticalAlignment.Center)
3637
case UiState.ItemStatus(true, false) =>
37-
InterIm.rectangle(buttonArea, hotColor)
38-
InterIm.text(buttonArea, label, fontSize, textColor, HorizontalAlignment.Center, VerticalAlignment.Center)
38+
rectangle(buttonArea, hotColor)
39+
text(buttonArea, label, fontSize, textColor, HorizontalAlignment.Center, VerticalAlignment.Center)
3940
case UiState.ItemStatus(false, true) =>
40-
InterIm.rectangle(buttonArea, activeColor)
41-
InterIm.text(buttonArea, label, fontSize, textColor, HorizontalAlignment.Center, VerticalAlignment.Center)
41+
rectangle(buttonArea, activeColor)
42+
text(buttonArea, label, fontSize, textColor, HorizontalAlignment.Center, VerticalAlignment.Center)
4243
case UiState.ItemStatus(true, true) =>
4344
val clickedArea = buttonArea.move(dx = clickDelta, dy = clickDelta)
44-
InterIm.rectangle(clickedArea, activeColor)
45-
InterIm.text(clickedArea, label, fontSize, textColor, HorizontalAlignment.Center, VerticalAlignment.Center)
45+
rectangle(clickedArea, activeColor)
46+
text(clickedArea, label, fontSize, textColor, HorizontalAlignment.Center, VerticalAlignment.Center)

core/src/main/scala/eu/joaocosta/interim/skins/CheckboxSkin.scala

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package eu.joaocosta.interim.skins
22

33
import eu.joaocosta.interim.*
4+
import eu.joaocosta.interim.api.Primitives.*
45

56
trait CheckboxSkin:
67
def checkboxArea(area: Rect): Rect
@@ -21,13 +22,13 @@ object CheckboxSkin:
2122
val checkboxArea = this.checkboxArea(area)
2223
itemStatus match
2324
case UiState.ItemStatus(false, false) =>
24-
InterIm.rectangle(checkboxArea, inactiveColor)
25+
rectangle(checkboxArea, inactiveColor)
2526
case UiState.ItemStatus(true, false) =>
26-
InterIm.rectangle(checkboxArea, hotColor)
27+
rectangle(checkboxArea, hotColor)
2728
case UiState.ItemStatus(_, true) =>
28-
InterIm.rectangle(checkboxArea, activeColor)
29+
rectangle(checkboxArea, activeColor)
2930
if (value)
30-
InterIm.rectangle(
31+
rectangle(
3132
checkboxArea.shrink(padding),
3233
checkColor
3334
)

core/src/main/scala/eu/joaocosta/interim/skins/SliderSkin.scala

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package eu.joaocosta.interim.skins
22

33
import eu.joaocosta.interim.*
4+
import eu.joaocosta.interim.api.Primitives.*
45

56
trait SliderSkin:
67
def sliderSize: Int
@@ -33,11 +34,11 @@ object SliderSkin:
3334
val sliderFill = area.w - 2 * padding
3435
val pos = (value - min) * (sliderArea.h - sliderSize) / (max - min)
3536
Rect(area.x + padding, area.y + padding + pos, sliderFill, sliderSize)
36-
InterIm.rectangle(area, scrollbarColor) // Scrollbar
37+
rectangle(area, scrollbarColor) // Scrollbar
3738
itemStatus match
3839
case UiState.ItemStatus(false, false) =>
39-
InterIm.rectangle(sliderRect, inactiveColor)
40+
rectangle(sliderRect, inactiveColor)
4041
case UiState.ItemStatus(true, false) =>
41-
InterIm.rectangle(sliderRect, hotColor)
42+
rectangle(sliderRect, hotColor)
4243
case _ =>
43-
InterIm.rectangle(sliderRect, activeColor)
44+
rectangle(sliderRect, activeColor)

0 commit comments

Comments
 (0)