...

Source file src/code.rocket9labs.com/tslocum/etk/style.go

Documentation: code.rocket9labs.com/tslocum/etk

     1  package etk
     2  
     3  import (
     4  	"image/color"
     5  	"log"
     6  	"sync"
     7  
     8  	"github.com/hajimehoshi/ebiten/v2/examples/resources/fonts"
     9  	"golang.org/x/image/font"
    10  	"golang.org/x/image/font/opentype"
    11  )
    12  
    13  var transparent = color.RGBA{0, 0, 0, 0}
    14  
    15  func defaultFont() font.Face {
    16  	tt, err := opentype.Parse(fonts.MPlus1pRegular_ttf)
    17  	if err != nil {
    18  		log.Fatal(err)
    19  	}
    20  	const dpi = 72
    21  	defaultFont, err := opentype.NewFace(tt, &opentype.FaceOptions{
    22  		Size:    32,
    23  		DPI:     dpi,
    24  		Hinting: font.HintingFull,
    25  	})
    26  	if err != nil {
    27  		log.Fatal(err)
    28  	}
    29  	return defaultFont
    30  }
    31  
    32  // Attributes represents a default attribute configuration. Integer values will be scaled.
    33  type Attributes struct {
    34  	TextFont      font.Face
    35  	TextFontMutex *sync.Mutex
    36  
    37  	TextColorLight color.RGBA
    38  	TextColorDark  color.RGBA
    39  
    40  	TextBgColor color.RGBA
    41  
    42  	BorderSize        int
    43  	BorderColorTop    color.RGBA
    44  	BorderColorRight  color.RGBA
    45  	BorderColorBottom color.RGBA
    46  	BorderColorLeft   color.RGBA
    47  
    48  	ScrollAreaColor   color.RGBA
    49  	ScrollHandleColor color.RGBA
    50  
    51  	ScrollBorderSize        int
    52  	ScrollBorderColorTop    color.RGBA
    53  	ScrollBorderColorRight  color.RGBA
    54  	ScrollBorderColorBottom color.RGBA
    55  	ScrollBorderColorLeft   color.RGBA
    56  
    57  	InputBgColor color.RGBA
    58  
    59  	ButtonTextColor       color.RGBA
    60  	ButtonBgColor         color.RGBA
    61  	ButtonBgColorDisabled color.RGBA
    62  }
    63  
    64  // Style is the current default attribute configuration. Integer values will be scaled.
    65  var Style = &Attributes{
    66  	TextFont:      defaultFont(),
    67  	TextFontMutex: &sync.Mutex{},
    68  
    69  	TextColorLight: color.RGBA{255, 255, 255, 255},
    70  	TextColorDark:  color.RGBA{0, 0, 0, 255},
    71  
    72  	TextBgColor: transparent,
    73  
    74  	BorderSize:        4,
    75  	BorderColorTop:    color.RGBA{220, 220, 220, 255},
    76  	BorderColorRight:  color.RGBA{0, 0, 0, 255},
    77  	BorderColorBottom: color.RGBA{0, 0, 0, 255},
    78  	BorderColorLeft:   color.RGBA{220, 220, 220, 255},
    79  
    80  	ScrollAreaColor:   color.RGBA{200, 200, 200, 255},
    81  	ScrollHandleColor: color.RGBA{108, 108, 108, 255},
    82  
    83  	ScrollBorderSize:        2,
    84  	ScrollBorderColorTop:    color.RGBA{240, 240, 240, 255},
    85  	ScrollBorderColorRight:  color.RGBA{0, 0, 0, 255},
    86  	ScrollBorderColorBottom: color.RGBA{0, 0, 0, 255},
    87  	ScrollBorderColorLeft:   color.RGBA{240, 240, 240, 255},
    88  
    89  	InputBgColor: color.RGBA{0, 128, 0, 255},
    90  
    91  	ButtonBgColor:         color.RGBA{255, 255, 255, 255},
    92  	ButtonBgColorDisabled: color.RGBA{110, 110, 110, 255},
    93  }
    94  

View as plain text