Compare commits
4 Commits
8aa8dc9570
...
v0.6.0
| Author | SHA1 | Date | |
|---|---|---|---|
| d166d88388 | |||
| 74025aac97 | |||
| e1cf524c57 | |||
| 919f000073 |
2
go.mod
2
go.mod
@@ -3,7 +3,7 @@ module git.tebibyte.media/tomo/backend
|
|||||||
go 1.20
|
go 1.20
|
||||||
|
|
||||||
require (
|
require (
|
||||||
git.tebibyte.media/tomo/tomo v0.42.0
|
git.tebibyte.media/tomo/tomo v0.45.0
|
||||||
git.tebibyte.media/tomo/typeset v0.7.1
|
git.tebibyte.media/tomo/typeset v0.7.1
|
||||||
git.tebibyte.media/tomo/xgbkb v1.0.1
|
git.tebibyte.media/tomo/xgbkb v1.0.1
|
||||||
github.com/jezek/xgb v1.1.1
|
github.com/jezek/xgb v1.1.1
|
||||||
|
|||||||
4
go.sum
4
go.sum
@@ -1,6 +1,6 @@
|
|||||||
git.tebibyte.media/sashakoshka/xgbkb v1.0.0/go.mod h1:pNcE6TRO93vHd6q42SdwLSTTj25L0Yzggz7yLe0JV6Q=
|
git.tebibyte.media/sashakoshka/xgbkb v1.0.0/go.mod h1:pNcE6TRO93vHd6q42SdwLSTTj25L0Yzggz7yLe0JV6Q=
|
||||||
git.tebibyte.media/tomo/tomo v0.42.0 h1:yaEUnURYrvBdMdcajrFhpd83TNzyQyBB+jOxvIyQTkU=
|
git.tebibyte.media/tomo/tomo v0.45.0 h1:fQH0WIPidW275hOq9dE6R7p064xG1RGx2QU68Avlr84=
|
||||||
git.tebibyte.media/tomo/tomo v0.42.0/go.mod h1:WrtilgKB1y8O2Yu7X4mYcRiqOlPR8NuUnoA/ynkQWrs=
|
git.tebibyte.media/tomo/tomo v0.45.0/go.mod h1:WrtilgKB1y8O2Yu7X4mYcRiqOlPR8NuUnoA/ynkQWrs=
|
||||||
git.tebibyte.media/tomo/typeset v0.7.1 h1:aZrsHwCG5ZB4f5CruRFsxLv5ezJUCFUFsQJJso2sXQ8=
|
git.tebibyte.media/tomo/typeset v0.7.1 h1:aZrsHwCG5ZB4f5CruRFsxLv5ezJUCFUFsQJJso2sXQ8=
|
||||||
git.tebibyte.media/tomo/typeset v0.7.1/go.mod h1:PwDpSdBF3l/EzoIsa2ME7QffVVajnTHZN6l3MHEGe1g=
|
git.tebibyte.media/tomo/typeset v0.7.1/go.mod h1:PwDpSdBF3l/EzoIsa2ME7QffVVajnTHZN6l3MHEGe1g=
|
||||||
git.tebibyte.media/tomo/xgbkb v1.0.1 h1:b3HDUopjdQp1MZrb5Vpil4bOtk3NnNXtfQW27Blw2kE=
|
git.tebibyte.media/tomo/xgbkb v1.0.1 h1:b3HDUopjdQp1MZrb5Vpil4bOtk3NnNXtfQW27Blw2kE=
|
||||||
|
|||||||
@@ -27,15 +27,12 @@ type box struct {
|
|||||||
focusQueued *bool
|
focusQueued *bool
|
||||||
|
|
||||||
attrColor attrHierarchy[tomo.AttrColor]
|
attrColor attrHierarchy[tomo.AttrColor]
|
||||||
attrIcon attrHierarchy[tomo.AttrIcon]
|
|
||||||
attrTexture attrHierarchy[tomo.AttrTexture]
|
attrTexture attrHierarchy[tomo.AttrTexture]
|
||||||
attrTextureMode attrHierarchy[tomo.AttrTextureMode]
|
attrTextureMode attrHierarchy[tomo.AttrTextureMode]
|
||||||
attrBorder attrHierarchy[tomo.AttrBorder]
|
attrBorder attrHierarchy[tomo.AttrBorder]
|
||||||
attrMinimumSize attrHierarchy[tomo.AttrMinimumSize]
|
attrMinimumSize attrHierarchy[tomo.AttrMinimumSize]
|
||||||
attrPadding attrHierarchy[tomo.AttrPadding]
|
attrPadding attrHierarchy[tomo.AttrPadding]
|
||||||
|
|
||||||
icon canvas.Texture
|
|
||||||
|
|
||||||
dndData data.Data
|
dndData data.Data
|
||||||
dndAccept []data.Mime
|
dndAccept []data.Mime
|
||||||
focusable bool
|
focusable bool
|
||||||
@@ -195,11 +192,6 @@ func (this *box) setAttr (attr tomo.Attr, user bool) {
|
|||||||
this.invalidateDraw()
|
this.invalidateDraw()
|
||||||
}
|
}
|
||||||
|
|
||||||
case tomo.AttrIcon:
|
|
||||||
if this.attrIcon.Set(attr, user) {
|
|
||||||
this.handleIconChange()
|
|
||||||
}
|
|
||||||
|
|
||||||
case tomo.AttrTexture:
|
case tomo.AttrTexture:
|
||||||
if this.attrTexture.Set(attr, user) {
|
if this.attrTexture.Set(attr, user) {
|
||||||
this.invalidateDraw()
|
this.invalidateDraw()
|
||||||
@@ -235,11 +227,6 @@ func (this *box) unsetAttr (kind tomo.AttrKind, user bool) {
|
|||||||
this.invalidateDraw()
|
this.invalidateDraw()
|
||||||
}
|
}
|
||||||
|
|
||||||
case tomo.AttrKindIcon:
|
|
||||||
if this.attrIcon.Unset(user) {
|
|
||||||
this.handleIconChange()
|
|
||||||
}
|
|
||||||
|
|
||||||
case tomo.AttrKindTexture:
|
case tomo.AttrKindTexture:
|
||||||
if this.attrTexture.Unset(user) {
|
if this.attrTexture.Unset(user) {
|
||||||
this.invalidateDraw()
|
this.invalidateDraw()
|
||||||
@@ -438,11 +425,6 @@ func (this *box) Draw (can canvas.Canvas) {
|
|||||||
if textureMode == tomo.TextureModeCenter && texture != nil {
|
if textureMode == tomo.TextureModeCenter && texture != nil {
|
||||||
this.centeredTexture(can, texture)
|
this.centeredTexture(can, texture)
|
||||||
}
|
}
|
||||||
|
|
||||||
// centered icon
|
|
||||||
if this.icon != nil {
|
|
||||||
this.centeredTexture(can, this.icon)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *box) centeredTexture (can canvas.Canvas, texture canvas.Texture) {
|
func (this *box) centeredTexture (can canvas.Canvas, texture canvas.Texture) {
|
||||||
@@ -600,15 +582,6 @@ func (this *box) handleBorderChange (previousBorderSum tomo.Inset, different boo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *box) handleIconChange () {
|
|
||||||
this.icon = nil
|
|
||||||
hierarchy := this.getHierarchy()
|
|
||||||
if hierarchy == nil { return }
|
|
||||||
icon := this.attrIcon.Value()
|
|
||||||
if icon.Icon == tomo.IconUnknown { return }
|
|
||||||
this.icon = hierarchy.getIconSet().Icon(icon.Icon, icon.Size)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *box) invalidateStyle () {
|
func (this *box) invalidateStyle () {
|
||||||
hierarchy := this.getHierarchy()
|
hierarchy := this.getHierarchy()
|
||||||
if hierarchy == nil { return }
|
if hierarchy == nil { return }
|
||||||
@@ -635,7 +608,8 @@ func (this *box) invalidateMinimum () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this *box) recursiveReApply () {
|
func (this *box) recursiveReApply () {
|
||||||
if this.getHierarchy() == nil { return }
|
hierarchy := this.getHierarchy()
|
||||||
|
if hierarchy == nil { return }
|
||||||
|
|
||||||
// re-apply styling, icons *if needed*
|
// re-apply styling, icons *if needed*
|
||||||
|
|
||||||
@@ -647,7 +621,7 @@ func (this *box) recursiveReApply () {
|
|||||||
// information about the boxes they're linked to (like all rules
|
// information about the boxes they're linked to (like all rules
|
||||||
// with a matching role).
|
// with a matching role).
|
||||||
this.lastStyleNonce = hierarchyStyleNonce
|
this.lastStyleNonce = hierarchyStyleNonce
|
||||||
this.styleApplicator = this.getHierarchy().newStyleApplicator()
|
this.styleApplicator = hierarchy.newStyleApplicator()
|
||||||
this.invalidateStyle()
|
this.invalidateStyle()
|
||||||
this.on.styleChange.Broadcast()
|
this.on.styleChange.Broadcast()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -493,9 +493,9 @@ func (this *textBox) scrollToDot () {
|
|||||||
|
|
||||||
func (this *textBox) handleFaceChange () {
|
func (this *textBox) handleFaceChange () {
|
||||||
hierarchy := this.getHierarchy()
|
hierarchy := this.getHierarchy()
|
||||||
if hierarchy != nil { return }
|
if hierarchy == nil { return }
|
||||||
faceSet := hierarchy.getFaceSet()
|
faceSet := hierarchy.getFaceSet()
|
||||||
if faceSet != nil { return }
|
if faceSet == nil { return }
|
||||||
|
|
||||||
face := faceSet.Face(tomo.Face(this.attrFace.Value()))
|
face := faceSet.Face(tomo.Face(this.attrFace.Value()))
|
||||||
this.face.Set(face, face)
|
this.face.Set(face, face)
|
||||||
@@ -503,3 +503,23 @@ func (this *textBox) handleFaceChange () {
|
|||||||
this.invalidateMinimum()
|
this.invalidateMinimum()
|
||||||
this.invalidateLayout()
|
this.invalidateLayout()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *textBox) recursiveReApply () {
|
||||||
|
this.box.recursiveReApply()
|
||||||
|
|
||||||
|
hierarchy := this.getHierarchy()
|
||||||
|
if hierarchy == nil { return }
|
||||||
|
|
||||||
|
previousFace := this.face.Value()
|
||||||
|
if previousFace == nil {
|
||||||
|
faceSet := hierarchy.getFaceSet()
|
||||||
|
if faceSet == nil { return }
|
||||||
|
face := faceSet.Face(tomo.Face(this.attrFace.Value()))
|
||||||
|
if face != previousFace {
|
||||||
|
this.face.Set(face, face)
|
||||||
|
this.drawer.SetFace(face)
|
||||||
|
this.invalidateMinimum()
|
||||||
|
this.invalidateLayout()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user