Added Append function to Theme & bug fixing

This commit is contained in:
Alexei Anoshenko 2022-05-16 17:43:06 +03:00
parent 26bcc60b1d
commit 3097f89f5a
9 changed files with 27 additions and 31 deletions

View File

@ -46,7 +46,7 @@ theme {
},
constants = _{
ruiButtonHorizontalPadding = 16px,
ruiButtonVerticalPadding = 8px,
ruiButtonVerticalPadding = 6px,
ruiButtonMargin = 4px,
ruiButtonRadius = 4px,
ruiButtonHighlightDilation = 1.5px,
@ -64,7 +64,7 @@ theme {
},
constants:touch = _{
ruiButtonHorizontalPadding = 20px,
ruiButtonVerticalPadding = 16px
ruiButtonVerticalPadding = 10px
},
styles = [
ruiApp {

View File

@ -278,7 +278,7 @@ func (edit *editViewData) set(tag string, value interface{}) bool {
case EditViewPattern:
oldText := GetEditViewPattern(edit, "")
if text, ok := value.(string); ok {
edit.properties[Pattern] = text
edit.properties[EditViewPattern] = text
if text = GetEditViewPattern(edit, ""); oldText != text {
if edit.created {
if text != "" {

2
go.mod
View File

@ -2,4 +2,4 @@ module github.com/anoshenko/rui
go 1.17
require github.com/gorilla/websocket v1.4.2
require github.com/gorilla/websocket v1.5.0

2
go.sum
View File

@ -1,2 +1,4 @@
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=

View File

@ -231,9 +231,9 @@ func registerThemeText(text string) bool {
name := theme.Name()
if name == "" {
defaultTheme.concat(theme)
defaultTheme.Append(theme)
} else if t, ok := resources.themes[name]; ok {
t.concat(theme)
t.Append(theme)
} else {
resources.themes[name] = theme
}
@ -418,9 +418,9 @@ func AddTheme(theme Theme) {
if theme != nil {
name := theme.Name()
if name == "" {
defaultTheme.concat(theme)
defaultTheme.Append(theme)
} else if t, ok := resources.themes[name]; ok {
t.concat(theme)
t.Append(theme)
} else {
resources.themes[name] = theme
}

View File

@ -29,16 +29,10 @@ type Session interface {
TextDirection() int
// Constant returns the constant with "tag" name or "" if it is not exists
Constant(tag string) (string, bool)
// ConstantTags returns the list of all available constants
ConstantTags() []string
// Color returns the color with "tag" name or 0 if it is not exists
Color(tag string) (Color, bool)
// ColorTags returns the list of all available color constants
ColorTags() []string
// ImageConstant returns the image constant with "tag" name or "" if it is not exists
ImageConstant(tag string) (string, bool)
// ImageConstantTags returns the list of all available image constants
ImageConstantTags() []string
// SetCustomTheme set the custom theme
SetCustomTheme(name string) bool
// UserAgent returns the "user-agent" text of the client browser

View File

@ -119,8 +119,8 @@ func (session *sessionData) getCurrentTheme() Theme {
if session.customTheme != nil {
session.currentTheme = NewTheme("")
session.currentTheme.concat(defaultTheme)
session.currentTheme.concat(session.customTheme)
session.currentTheme.Append(defaultTheme)
session.currentTheme.Append(session.customTheme)
return session.currentTheme
}
@ -337,15 +337,3 @@ func (session *sessionData) SetLanguage(lang string) {
}
}
}
func (session *sessionData) ConstantTags() []string {
return session.getCurrentTheme().ConstantTags()
}
func (session *sessionData) ColorTags() []string {
return session.getCurrentTheme().ColorTags()
}
func (session *sessionData) ImageConstantTags() []string {
return session.getCurrentTheme().ImageConstantTags()
}

View File

@ -895,8 +895,9 @@ func (table *tableViewData) htmlSubviews(self View, buffer *strings.Builder) {
vAlign := vAlignCss[vAlignValue]
tableCSS := func(startRow, endRow int, cellTag string, cellBorder BorderProperty, cellPadding BoundsProperty) {
for row := startRow; row < endRow; row++ {
var namedColors []NamedColor = nil
for row := startRow; row < endRow; row++ {
cssBuilder.buffer.Reset()
if rowStyle != nil {
if styles := rowStyle.RowStyle(row); styles != nil {
@ -1069,6 +1070,17 @@ func (table *tableViewData) htmlSubviews(self View, buffer *strings.Builder) {
buffer.WriteString(value.cssString())
buffer.WriteString(`">&nbsp;&nbsp;&nbsp;&nbsp;</div> `)
buffer.WriteString(value.String())
if namedColors == nil {
namedColors = NamedColors()
}
for _, namedColor := range namedColors {
if namedColor.Color == value {
buffer.WriteString(" (")
buffer.WriteString(namedColor.Name)
buffer.WriteRune(')')
break
}
}
case fmt.Stringer:
buffer.WriteString(textToJS(value.String()))

View File

@ -45,12 +45,12 @@ type Theme interface {
SetImage(tag, image, darkUIImage string)
// ImageConstantTags returns the list of all available image constants
ImageConstantTags() []string
Append(anotherTheme Theme)
constant(tag string, touchUI bool) string
color(tag string, darkUI bool) string
image(tag string, darkUI bool) string
style(tag string) Params
concat(anotherTheme Theme)
cssText(session Session) string
data() *theme
}
@ -290,7 +290,7 @@ func (theme *theme) data() *theme {
return theme
}
func (theme *theme) concat(anotherTheme Theme) {
func (theme *theme) Append(anotherTheme Theme) {
if theme.constants == nil {
theme.init()
}