Right-align compact header menus
This commit is contained in:
@@ -489,10 +489,10 @@ type ui struct {
|
|||||||
deleteGroupPath []string
|
deleteGroupPath []string
|
||||||
apiPolicyGroupScope bool
|
apiPolicyGroupScope bool
|
||||||
apiTokenSecret string
|
apiTokenSecret string
|
||||||
phoneSyncMenuAnchor image.Point
|
|
||||||
phoneMainMenuAnchor image.Point
|
|
||||||
phoneSyncMenuOrigin image.Point
|
phoneSyncMenuOrigin image.Point
|
||||||
phoneMainMenuOrigin image.Point
|
phoneMainMenuOrigin image.Point
|
||||||
|
phoneSyncMenuSize image.Point
|
||||||
|
phoneMainMenuSize image.Point
|
||||||
phoneSyncMenuCall op.CallOp
|
phoneSyncMenuCall op.CallOp
|
||||||
phoneMainMenuCall op.CallOp
|
phoneMainMenuCall op.CallOp
|
||||||
phoneSyncMenuVisible bool
|
phoneSyncMenuVisible bool
|
||||||
|
|||||||
@@ -593,6 +593,8 @@ func (u *ui) layout(gtx layout.Context) layout.Dimensions {
|
|||||||
u.phoneMainMenuVisible = false
|
u.phoneMainMenuVisible = false
|
||||||
u.phoneSyncMenuOrigin = image.Point{}
|
u.phoneSyncMenuOrigin = image.Point{}
|
||||||
u.phoneMainMenuOrigin = image.Point{}
|
u.phoneMainMenuOrigin = image.Point{}
|
||||||
|
u.phoneSyncMenuSize = image.Point{}
|
||||||
|
u.phoneMainMenuSize = image.Point{}
|
||||||
u.phoneSyncMenuCall = op.CallOp{}
|
u.phoneSyncMenuCall = op.CallOp{}
|
||||||
u.phoneMainMenuCall = op.CallOp{}
|
u.phoneMainMenuCall = op.CallOp{}
|
||||||
u.syncHostedAPI()
|
u.syncHostedAPI()
|
||||||
|
|||||||
@@ -55,19 +55,19 @@ func (u *ui) headerActions(gtx layout.Context) layout.Dimensions {
|
|||||||
}
|
}
|
||||||
if u.syncMenuOpen {
|
if u.syncMenuOpen {
|
||||||
u.phoneSyncMenuVisible = true
|
u.phoneSyncMenuVisible = true
|
||||||
u.phoneSyncMenuAnchor = cluster.Metrics.SyncAnchor().Point()
|
|
||||||
u.maybeLogHeaderMenuToggle("sync-visible", true)
|
u.maybeLogHeaderMenuToggle("sync-visible", true)
|
||||||
placement, menuCall := compactSurface.Place(gtx, cluster.Metrics.SyncAnchor(), u.syncMenu)
|
placement, menuCall := compactSurface.Place(gtx, cluster.Metrics.SyncAnchor(), u.syncMenu)
|
||||||
u.phoneSyncMenuOrigin = placement.Origin
|
u.phoneSyncMenuOrigin = placement.Origin
|
||||||
|
u.phoneSyncMenuSize = placement.Size
|
||||||
u.phoneSyncMenuCall = menuCall
|
u.phoneSyncMenuCall = menuCall
|
||||||
u.maybeLogHeaderMenuPlacement("sync-phone", compactSurface, placement)
|
u.maybeLogHeaderMenuPlacement("sync-phone", compactSurface, placement)
|
||||||
}
|
}
|
||||||
if u.mainMenuOpen {
|
if u.mainMenuOpen {
|
||||||
u.phoneMainMenuVisible = true
|
u.phoneMainMenuVisible = true
|
||||||
u.phoneMainMenuAnchor = cluster.Metrics.MainAnchor().Point()
|
|
||||||
u.maybeLogHeaderMenuToggle("main-visible", true)
|
u.maybeLogHeaderMenuToggle("main-visible", true)
|
||||||
placement, menuCall := compactSurface.Place(gtx, cluster.Metrics.MainAnchor(), u.mainMenu)
|
placement, menuCall := compactSurface.Place(gtx, cluster.Metrics.MainAnchor(), u.mainMenu)
|
||||||
u.phoneMainMenuOrigin = placement.Origin
|
u.phoneMainMenuOrigin = placement.Origin
|
||||||
|
u.phoneMainMenuSize = placement.Size
|
||||||
u.phoneMainMenuCall = menuCall
|
u.phoneMainMenuCall = menuCall
|
||||||
u.maybeLogHeaderMenuPlacement("main-phone", compactSurface, placement)
|
u.maybeLogHeaderMenuPlacement("main-phone", compactSurface, placement)
|
||||||
}
|
}
|
||||||
@@ -204,13 +204,25 @@ func (u *ui) phoneHeaderMenus(gtx layout.Context) layout.Dimensions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if u.syncMenuVisibleOnPhone() {
|
if u.syncMenuVisibleOnPhone() {
|
||||||
stack := op.Offset(u.phoneSyncMenuOrigin).Push(gtx.Ops)
|
stack := op.Offset(image.Pt(u.frameInsetPx, u.phoneSyncMenuOrigin.Y)).Push(gtx.Ops)
|
||||||
u.phoneSyncMenuCall.Add(gtx.Ops)
|
menuGTX := gtx
|
||||||
|
menuGTX.Constraints.Min = image.Point{}
|
||||||
|
menuGTX.Constraints.Max.X = max(0, gtx.Constraints.Max.X-(u.frameInsetPx*2))
|
||||||
|
layout.E.Layout(menuGTX, func(gtx layout.Context) layout.Dimensions {
|
||||||
|
u.phoneSyncMenuCall.Add(gtx.Ops)
|
||||||
|
return layout.Dimensions{Size: u.phoneSyncMenuSize}
|
||||||
|
})
|
||||||
stack.Pop()
|
stack.Pop()
|
||||||
}
|
}
|
||||||
if u.mainMenuVisibleOnPhone() {
|
if u.mainMenuVisibleOnPhone() {
|
||||||
stack := op.Offset(u.phoneMainMenuOrigin).Push(gtx.Ops)
|
stack := op.Offset(image.Pt(u.frameInsetPx, u.phoneMainMenuOrigin.Y)).Push(gtx.Ops)
|
||||||
u.phoneMainMenuCall.Add(gtx.Ops)
|
menuGTX := gtx
|
||||||
|
menuGTX.Constraints.Min = image.Point{}
|
||||||
|
menuGTX.Constraints.Max.X = max(0, gtx.Constraints.Max.X-(u.frameInsetPx*2))
|
||||||
|
layout.E.Layout(menuGTX, func(gtx layout.Context) layout.Dimensions {
|
||||||
|
u.phoneMainMenuCall.Add(gtx.Ops)
|
||||||
|
return layout.Dimensions{Size: u.phoneMainMenuSize}
|
||||||
|
})
|
||||||
stack.Pop()
|
stack.Pop()
|
||||||
}
|
}
|
||||||
return layout.Dimensions{Size: gtx.Constraints.Max}
|
return layout.Dimensions{Size: gtx.Constraints.Max}
|
||||||
|
|||||||
Reference in New Issue
Block a user