Working on Layout Stuff

This commit is contained in:
2025-10-16 11:39:06 -05:00
parent f823a24fe8
commit 6aaaa68228
5 changed files with 222 additions and 74 deletions

View File

@@ -44,22 +44,55 @@ const (
)
const (
LFAlignTopLeft = LayoutFlag(LFAlignHLeft | LFAlignVTop)
LFAlignCenter = LayoutFlag(LFAlignHCenter | LFAlignVCenter)
LFAlignAll = LayoutFlag(0x1111)
)
func (f LayoutFlag) Add(fl LayoutFlag) { f |= fl }
const (
LFAlignTopLeft = LayoutFlag(LFAlignHLeft | LFAlignVTop)
LFAlignTop = LayoutFlag(LFAlignHCenter | LFAlignVTop)
LFAlignTopRight = LayoutFlag(LFAlignHRight | LFAlignVTop)
LFAlignLeft = LayoutFlag(LFAlignHLeft | LFAlignVCenter)
LFAlignCenter = LayoutFlag(LFAlignHCenter | LFAlignVCenter)
LFAlignRight = LayoutFlag(LFAlignHRight | LFAlignVCenter)
LFAlignBottomLeft = LayoutFlag(LFAlignHLeft | LFAlignVBottom)
LFAlignBottom = LayoutFlag(LFAlignHCenter | LFAlignVBottom)
LFAlignBottomRight = LayoutFlag(LFAlignHRight | LFAlignVBottom)
)
// Size Flags
// The default should be MinW, MinH
const (
_ = LayoutFlag(iota << 4)
LFSizeFullW // 00010000
LFSizeFullH // 00100000
LFSizeFull // 00110000
_ = LayoutFlag(iota << 6)
LFSizeWrapW // 01000000
LFSizeWrapH // 10000000
LFSizeWrap // 11000000
LFSizeAll = LayoutFlag(0x11110000)
)
func (f LayoutFlag) Add(fl LayoutFlag) { f |= fl }
func (f LayoutFlag) ClearAll() {
f.ClearAllAlign()
f.ClearAllSize()
}
// Alignment Manipulation
func (f LayoutFlag) AlignH() LayoutFlag { return f & LFAlignH }
func (f LayoutFlag) AlignV() LayoutFlag { return f & LFAlignV }
func (f LayoutFlag) IsAlignH() bool { return f.AlignH() > 0 }
func (f LayoutFlag) IsAlignV() bool { return f.AlignV() > 0 }
func (f LayoutFlag) SetTopLeft() {
f.ClearAll()
f.ClearAllAlign()
f = LFAlignHLeft | LFAlignVTop
}
func (f LayoutFlag) SetBottomCenter() {
f.ClearAll()
f.ClearAllAlign()
f = LFAlignHCenter | LFAlignVBottom
}
@@ -72,8 +105,26 @@ func (f LayoutFlag) ClearAlignV() {
f = f &^ LFAlignV
f.Add(LFAlignVCenter)
}
func (f LayoutFlag) ClearAll() {
func (f LayoutFlag) ClearAllAlign() {
f.ClearAlignH()
f.ClearAlignV()
}
// Size Manipulation
func (f LayoutFlag) SetSizeWrap() {
f.ClearAllSize()
f = f | LFSizeWrap
}
func (f LayoutFlag) SetSizeFull() {
f.ClearAllSize()
f = f | LFSizeFull
}
func (f LayoutFlag) ClearAllSize() {
f = f &^ LFSizeAll
}
func (f LayoutFlag) ClearSizeW() {
f = f &^ (LFSizeFullW | LFSizeWrapW)
}
func (f LayoutFlag) ClearSizeH() {
f = f &^ (LFSizeFullH | LFSizeWrapH)
}