[orx-text-writer] Add orx-text-writer
This commit is contained in:
@@ -15,6 +15,7 @@ tasks.test {
|
||||
|
||||
dependencies {
|
||||
implementation(project(":orx-expression-evaluator"))
|
||||
implementation(project(":orx-text-writer"))
|
||||
implementation(libs.openrndr.application)
|
||||
implementation(libs.openrndr.math)
|
||||
implementation(libs.kotlin.coroutines)
|
||||
|
||||
@@ -3,9 +3,10 @@ package org.openrndr.panel.elements
|
||||
import org.openrndr.color.ColorRGBa
|
||||
import org.openrndr.draw.Drawer
|
||||
import org.openrndr.draw.FontImageMap
|
||||
import org.openrndr.draw.Writer
|
||||
|
||||
import org.openrndr.draw.isolated
|
||||
import org.openrndr.events.Event
|
||||
import org.openrndr.extra.textwriter.TextWriter
|
||||
import org.openrndr.panel.style.*
|
||||
import org.openrndr.shape.Rectangle
|
||||
|
||||
@@ -53,7 +54,7 @@ class Button : Element(ElementType("button")) {
|
||||
val fontSize = (style.fontSize as? LinearDimension.PX)?.value ?: 14.0
|
||||
val fontMap = FontImageMap.fromUrl(fontUrl, fontSize)
|
||||
|
||||
val writer = Writer(null)
|
||||
val writer = TextWriter(null)
|
||||
|
||||
writer.box = Rectangle(0.0,
|
||||
0.0,
|
||||
@@ -84,7 +85,7 @@ class Button : Element(ElementType("button")) {
|
||||
|
||||
(root() as? Body)?.controlManager?.fontManager?.let {
|
||||
val font = it.font(computedStyle)
|
||||
val writer = Writer(drawer)
|
||||
val writer = TextWriter(drawer)
|
||||
drawer.fontMap = (font)
|
||||
val textWidth = writer.textWidth(label)
|
||||
val textHeight = font.ascenderLength
|
||||
|
||||
@@ -4,8 +4,9 @@ import kotlinx.coroutines.yield
|
||||
import org.openrndr.color.ColorRGBa
|
||||
import org.openrndr.draw.Drawer
|
||||
import org.openrndr.draw.LineCap
|
||||
import org.openrndr.draw.Writer
|
||||
|
||||
import org.openrndr.events.Event
|
||||
import org.openrndr.extra.textwriter.TextWriter
|
||||
import org.openrndr.launch
|
||||
import org.openrndr.panel.style.*
|
||||
|
||||
@@ -62,7 +63,7 @@ class ColorpickerButton : Element(ElementType("colorpicker-button")), Disposable
|
||||
(root() as? Body)?.controlManager?.fontManager?.let {
|
||||
val font = it.font(computedStyle)
|
||||
|
||||
val writer = Writer(drawer)
|
||||
val writer = TextWriter(drawer)
|
||||
drawer.fontMap = (font)
|
||||
|
||||
val text = "$label"
|
||||
|
||||
@@ -5,12 +5,12 @@ import org.openrndr.draw.Drawer
|
||||
import org.openrndr.draw.FontImageMap
|
||||
import org.openrndr.panel.style.*
|
||||
import org.openrndr.shape.Rectangle
|
||||
|
||||
import org.openrndr.extra.textwriter.TextWriter
|
||||
import kotlinx.coroutines.yield
|
||||
import org.openrndr.KEY_ARROW_DOWN
|
||||
import org.openrndr.KEY_ARROW_UP
|
||||
import org.openrndr.KEY_ENTER
|
||||
import org.openrndr.draw.Writer
|
||||
|
||||
import org.openrndr.events.Event
|
||||
import org.openrndr.launch
|
||||
import kotlin.math.max
|
||||
@@ -80,7 +80,7 @@ class DropdownButton : Element(ElementType("dropdown-button")), DisposableElemen
|
||||
val fontUrl = (root() as? Body)?.controlManager?.fontManager?.resolve(style.fontFamily) ?: "broken"
|
||||
val fontSize = (style.fontSize as? LinearDimension.PX)?.value ?: 16.0
|
||||
val fontMap = FontImageMap.fromUrl(fontUrl, fontSize)
|
||||
val writer = Writer(null)
|
||||
val writer = TextWriter(null)
|
||||
|
||||
writer.box = Rectangle(0.0,
|
||||
0.0,
|
||||
@@ -116,7 +116,7 @@ class DropdownButton : Element(ElementType("dropdown-button")), DisposableElemen
|
||||
(root() as? Body)?.controlManager?.fontManager?.let {
|
||||
val font = it.font(computedStyle)
|
||||
|
||||
val writer = Writer(drawer)
|
||||
val writer = TextWriter(drawer)
|
||||
drawer.fontMap = (font)
|
||||
|
||||
val text = (value?.label) ?: "<choose>"
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package org.openrndr.panel.elements
|
||||
|
||||
import org.openrndr.color.ColorRGBa
|
||||
import org.openrndr.draw.Cursor
|
||||
|
||||
import org.openrndr.draw.Drawer
|
||||
import org.openrndr.draw.Writer
|
||||
import org.openrndr.extra.textwriter.Cursor
|
||||
import org.openrndr.extra.textwriter.TextWriter
|
||||
|
||||
import org.openrndr.math.Vector2
|
||||
import org.openrndr.panel.style.*
|
||||
|
||||
@@ -53,7 +55,7 @@ class EnvelopeButton : Element(ElementType("envelope-button")) {
|
||||
(root() as? Body)?.controlManager?.fontManager?.let {
|
||||
val font = it.font(computedStyle)
|
||||
|
||||
val writer = Writer(drawer)
|
||||
val writer = TextWriter(drawer)
|
||||
drawer.fontMap = (font)
|
||||
drawer.fill = (ColorRGBa.BLACK)
|
||||
writer.cursor = Cursor(0.0,layout.screenHeight - 4.0)
|
||||
|
||||
@@ -5,6 +5,8 @@ import org.openrndr.KeyModifier
|
||||
import org.openrndr.color.ColorRGBa
|
||||
import org.openrndr.draw.*
|
||||
import org.openrndr.events.Event
|
||||
import org.openrndr.extra.textwriter.Cursor
|
||||
import org.openrndr.extra.textwriter.TextWriter
|
||||
import org.openrndr.math.Vector2
|
||||
import org.openrndr.math.map
|
||||
import org.openrndr.panel.style.effectiveColor
|
||||
@@ -196,7 +198,7 @@ open class SequenceEditorBase(type: String = "sequence-editor-base") : Element(E
|
||||
drawer.fill = computedStyle.effectiveColor
|
||||
(root() as? Body)?.controlManager?.fontManager?.let {
|
||||
val font = it.font(computedStyle)
|
||||
val writer = Writer(drawer)
|
||||
val writer = TextWriter(drawer)
|
||||
drawer.fontMap = (font)
|
||||
drawer.fill = computedStyle.effectiveColor
|
||||
writer.cursor = Cursor(0.0, 4.0)
|
||||
|
||||
@@ -3,11 +3,13 @@ package org.openrndr.panel.elements
|
||||
import io.github.oshai.kotlinlogging.KotlinLogging
|
||||
import kotlinx.coroutines.*
|
||||
import org.openrndr.*
|
||||
import org.openrndr.draw.Cursor
|
||||
|
||||
import org.openrndr.draw.Drawer
|
||||
import org.openrndr.draw.LineCap
|
||||
import org.openrndr.draw.Writer
|
||||
|
||||
import org.openrndr.events.Event
|
||||
import org.openrndr.extra.textwriter.Cursor
|
||||
import org.openrndr.extra.textwriter.TextWriter
|
||||
import org.openrndr.math.Vector2
|
||||
import org.openrndr.panel.style.Color
|
||||
import org.openrndr.panel.style.color
|
||||
@@ -267,7 +269,7 @@ class Slider : Element(ElementType("slider")), DisposableElement {
|
||||
|
||||
(root() as? Body)?.controlManager?.fontManager?.let {
|
||||
val font = it.font(computedStyle)
|
||||
val writer = Writer(drawer)
|
||||
val writer = TextWriter(drawer)
|
||||
drawer.fontMap = (font)
|
||||
drawer.fill = computedStyle.effectiveColor
|
||||
writer.cursor = Cursor(0.0, 8.0)
|
||||
|
||||
@@ -4,7 +4,8 @@ import kotlinx.coroutines.yield
|
||||
import org.openrndr.color.ColorRGBa
|
||||
import org.openrndr.draw.Drawer
|
||||
import org.openrndr.draw.FontImageMap
|
||||
import org.openrndr.draw.Writer
|
||||
import org.openrndr.extra.textwriter.TextWriter
|
||||
|
||||
import org.openrndr.launch
|
||||
import org.openrndr.math.Vector2
|
||||
import org.openrndr.panel.style.*
|
||||
@@ -20,7 +21,7 @@ class TextNode(var text: String) : Element(ElementType("text")) {
|
||||
drawer.fill = (fill)
|
||||
}
|
||||
val fontMap = (root() as Body).controlManager.fontManager.font(computedStyle)
|
||||
val writer = Writer(drawer)
|
||||
val writer = TextWriter(drawer)
|
||||
drawer.fontMap = (fontMap)
|
||||
|
||||
writer.box = Rectangle(Vector2(layout.screenX * 0.0, layout.screenY * 0.0), layout.screenWidth, layout.screenHeight)
|
||||
@@ -35,7 +36,7 @@ class TextNode(var text: String) : Element(ElementType("text")) {
|
||||
val fontSize = (style.fontSize as? LinearDimension.PX)?.value?: 14.0
|
||||
val fontMap = FontImageMap.fromUrl(fontUrl, fontSize)
|
||||
|
||||
val writer = Writer(null)
|
||||
val writer = TextWriter(null)
|
||||
|
||||
writer.box = Rectangle(layout.screenX,
|
||||
layout.screenY,
|
||||
|
||||
@@ -7,9 +7,9 @@ import org.openrndr.draw.Drawer
|
||||
import org.openrndr.draw.LineCap
|
||||
import org.openrndr.panel.style.*
|
||||
import org.openrndr.KeyModifier
|
||||
import org.openrndr.draw.Cursor
|
||||
import org.openrndr.draw.writer
|
||||
import org.openrndr.events.Event
|
||||
import org.openrndr.extra.textwriter.Cursor
|
||||
import org.openrndr.extra.textwriter.writer
|
||||
import org.openrndr.launch
|
||||
import org.openrndr.shape.Rectangle
|
||||
import kotlin.reflect.KMutableProperty0
|
||||
|
||||
@@ -7,8 +7,9 @@ import org.openrndr.draw.LineCap
|
||||
import org.openrndr.panel.style.*
|
||||
import org.openrndr.shape.Rectangle
|
||||
|
||||
import org.openrndr.draw.Writer
|
||||
|
||||
import org.openrndr.events.Event
|
||||
import org.openrndr.extra.textwriter.TextWriter
|
||||
import org.openrndr.launch
|
||||
import kotlin.reflect.KMutableProperty0
|
||||
|
||||
@@ -35,7 +36,7 @@ class Toggle : Element(ElementType("toggle")), DisposableElement {
|
||||
val fontSize = (style.fontSize as? LinearDimension.PX)?.value ?: 14.0
|
||||
val fontMap = FontImageMap.fromUrl(fontUrl, fontSize)
|
||||
|
||||
val writer = Writer(null)
|
||||
val writer = TextWriter(null)
|
||||
|
||||
writer.box = Rectangle(0.0,
|
||||
0.0,
|
||||
|
||||
@@ -4,8 +4,9 @@ import kotlinx.coroutines.yield
|
||||
import org.openrndr.*
|
||||
import org.openrndr.color.ColorRGBa
|
||||
import org.openrndr.draw.Drawer
|
||||
import org.openrndr.draw.Writer
|
||||
|
||||
import org.openrndr.events.Event
|
||||
import org.openrndr.extra.textwriter.TextWriter
|
||||
import org.openrndr.math.Vector2
|
||||
import org.openrndr.math.clamp
|
||||
import org.openrndr.math.map
|
||||
@@ -213,7 +214,7 @@ class XYPad : Element(ElementType("xy-pad")) {
|
||||
val valueLabel = "${String.format("%.0${precision}f", value.x)}, ${String.format("%.0${precision}f", value.y)}"
|
||||
|
||||
(root() as? Body)?.controlManager?.fontManager?.let {
|
||||
val writer = Writer(drawer)
|
||||
val writer = TextWriter(drawer)
|
||||
drawer.fontMap = it.font(computedStyle)
|
||||
val textWidth = writer.textWidth(valueLabel)
|
||||
|
||||
|
||||
@@ -4,7 +4,8 @@ import org.openrndr.color.ColorRGBa
|
||||
import org.openrndr.draw.Drawer
|
||||
import org.openrndr.draw.FontImageMap
|
||||
import org.openrndr.draw.isolated
|
||||
import org.openrndr.draw.writer
|
||||
import org.openrndr.extra.textwriter.writer
|
||||
|
||||
import org.openrndr.math.Vector2
|
||||
import org.openrndr.panel.elements.Body
|
||||
import org.openrndr.panel.elements.Element
|
||||
|
||||
Reference in New Issue
Block a user