summaryrefslogtreecommitdiff
path: root/zz_drawtext.go
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2018-08-26 09:55:07 -0400
committerPietro Gagliardi <[email protected]>2018-08-26 09:55:07 -0400
commit62ac2527732a01dfa6bd2c9523215c0ba3816641 (patch)
tree84244a69e048f79e4d9f134c121f4cf581200986 /zz_drawtext.go
parenta5a00c644c08a6e0f52740c3f2a280977929a285 (diff)
Moved all the Go files out of the way again, this time so we can migrate them to more proper cgo usage.
Diffstat (limited to 'zz_drawtext.go')
-rw-r--r--zz_drawtext.go167
1 files changed, 0 insertions, 167 deletions
diff --git a/zz_drawtext.go b/zz_drawtext.go
deleted file mode 100644
index a32b14b..0000000
--- a/zz_drawtext.go
+++ /dev/null
@@ -1,167 +0,0 @@
-// 19 august 2018
-
-// +build OMIT
-
-package main
-
-// TODO probably a bug in libui: changing the font away from skia leads to a crash
-
-import (
- "github.com/andlabs/ui"
-)
-
-var (
- fontButton *ui.FontButton
- alignment *ui.Combobox
-
- attrstr *ui.AttributedString
-)
-
-func appendWithAttributes(what string, attrs ...ui.Attribute) {
- start := len(attrstr.String())
- end := start + len(what)
- attrstr.AppendUnattributed(what)
- for _, a := range attrs {
- attrstr.SetAttribute(a, start, end)
- }
-}
-
-func makeAttributedString() {
- attrstr = ui.NewAttributedString(
- "Drawing strings with package ui is done with the ui.AttributedString and ui.DrawTextLayout objects.\n" +
- "ui.AttributedString lets you have a variety of attributes: ")
-
- appendWithAttributes("font family", ui.TextFamily("Courier New"))
- attrstr.AppendUnattributed(", ")
-
- appendWithAttributes("font size", ui.TextSize(18))
- attrstr.AppendUnattributed(", ")
-
- appendWithAttributes("font weight", ui.TextWeightBold)
- attrstr.AppendUnattributed(", ")
-
- appendWithAttributes("font italicness", ui.TextItalicItalic)
- attrstr.AppendUnattributed(", ")
-
- appendWithAttributes("font stretch", ui.TextStretchCondensed)
- attrstr.AppendUnattributed(", ")
-
- appendWithAttributes("text color", ui.TextColor{0.75, 0.25, 0.5, 0.75})
- attrstr.AppendUnattributed(", ")
-
- appendWithAttributes("text background color", ui.TextBackground{0.5, 0.5, 0.25, 0.5})
- attrstr.AppendUnattributed(", ")
-
- appendWithAttributes("underline style", ui.UnderlineSingle)
- attrstr.AppendUnattributed(", ")
-
- attrstr.AppendUnattributed("and ")
- appendWithAttributes("underline color",
- ui.UnderlineDouble,
- ui.UnderlineColorCustom{1.0, 0.0, 0.5, 1.0})
- attrstr.AppendUnattributed(". ")
-
- attrstr.AppendUnattributed("Furthermore, there are attributes allowing for ")
- appendWithAttributes("special underlines for indicating spelling errors",
- ui.UnderlineSuggestion,
- ui.UnderlineColorSpelling)
- attrstr.AppendUnattributed(" (and other types of errors) ")
-
- attrstr.AppendUnattributed("and control over OpenType features such as ligatures (for instance, ")
- appendWithAttributes("afford", ui.OpenTypeFeatures{
- ui.ToOpenTypeTag('l', 'i', 'g', 'a'): 0,
- })
- attrstr.AppendUnattributed(" vs. ")
- appendWithAttributes("afford", ui.OpenTypeFeatures{
- ui.ToOpenTypeTag('l', 'i', 'g', 'a'): 1,
- })
- attrstr.AppendUnattributed(").\n")
-
- attrstr.AppendUnattributed("Use the controls opposite to the text to control properties of the text.")
-}
-
-type areaHandler struct{}
-
-func (areaHandler) Draw(a *ui.Area, p *ui.AreaDrawParams) {
- tl := ui.DrawNewTextLayout(&ui.DrawTextLayoutParams{
- String: attrstr,
- DefaultFont: fontButton.Font(),
- Width: p.AreaWidth,
- Align: ui.DrawTextAlign(alignment.Selected()),
- })
- defer tl.Free()
- p.Context.Text(tl, 0, 0)
-}
-
-func (areaHandler) MouseEvent(a *ui.Area, me *ui.AreaMouseEvent) {
- // do nothing
-}
-
-func (areaHandler) MouseCrossed(a *ui.Area, left bool) {
- // do nothing
-}
-
-func (areaHandler) DragBroken(a *ui.Area) {
- // do nothing
-}
-
-func (areaHandler) KeyEvent(a *ui.Area, ke *ui.AreaKeyEvent) (handled bool) {
- // reject all keys
- return false
-}
-
-func setupUI() {
- makeAttributedString()
-
- mainwin := ui.NewWindow("libui Text-Drawing Example", 640, 480, true)
- mainwin.SetMargined(true)
- mainwin.OnClosing(func(*ui.Window) bool {
- mainwin.Destroy()
- ui.Quit()
- return false
- })
- ui.OnShouldQuit(func() bool {
- mainwin.Destroy()
- return true
- })
-
- hbox := ui.NewHorizontalBox()
- hbox.SetPadded(true)
- mainwin.SetChild(hbox)
-
- vbox := ui.NewVerticalBox()
- vbox.SetPadded(true)
- hbox.Append(vbox, false)
-
- area := ui.NewArea(areaHandler{})
-
- fontButton = ui.NewFontButton()
- fontButton.OnChanged(func(*ui.FontButton) {
- area.QueueRedrawAll()
- })
- vbox.Append(fontButton, false)
-
- form := ui.NewForm()
- form.SetPadded(true)
- // TODO on OS X if this is set to 1 then the window can't resize; does the form not have the concept of stretchy trailing space?
- vbox.Append(form, false)
-
- alignment = ui.NewCombobox()
- // note that the items match with the values of the uiDrawTextAlign values
- alignment.Append("Left")
- alignment.Append("Center")
- alignment.Append("Right")
- alignment.SetSelected(0) // start with left alignment
- alignment.OnSelected(func(*ui.Combobox) {
- area.QueueRedrawAll()
- })
- form.Append("Alignment", alignment, false)
-
- hbox.Append(area, true)
-
- mainwin.Show()
-}
-
-func main() {
- ui.Main(setupUI)
-}