Skip to content

Commit

Permalink
Move spacer to layout as that's what it is
Browse files Browse the repository at this point in the history
  • Loading branch information
andydotxyz committed Aug 24, 2018
1 parent 20c2757 commit 120b904
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 51 deletions.
46 changes: 0 additions & 46 deletions canvasobject.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,49 +38,3 @@ type FocusableObject interface {

OnKeyDown(*KeyEvent)
}

// SpacerObject is a simple object that can be used in a list layout to space
// out child objects
type SpacerObject interface {
ExpandVertical() bool
ExpandHorizontal() bool
}

type spacerObject struct {
size Size
pos Position
}

func (s *spacerObject) ExpandVertical() bool {
return true
}

func (s *spacerObject) ExpandHorizontal() bool {
return true
}

func (s *spacerObject) CurrentSize() Size {
return s.size
}

func (s *spacerObject) Resize(size Size) {
s.size = size
}

func (s *spacerObject) CurrentPosition() Position {
return s.pos
}

func (s *spacerObject) Move(pos Position) {
s.pos = pos
}

func (s *spacerObject) MinSize() Size {
return NewSize(0, 0)
}

// NewSpacer returns a spacer object which can fill vertical and horizontal
// space. This is primarily used with a list layout.
func NewSpacer() CanvasObject {
return &spacerObject{}
}
4 changes: 2 additions & 2 deletions examples/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,10 @@ func welcome(app fyne.App) {
appButton(app, "Layout", layoutApp),
appButton(app, "Life", lifeApp),

fyne.NewSpacer(),
layout.NewSpacer(),
widget.NewEntry(),
widget.NewCheck("Check", func(on bool) { fmt.Println("checked", on) }),
fyne.NewSpacer(),
layout.NewSpacer(),
fyne.NewContainerWithLayout(layout.NewGridLayout(2),
widget.NewButton("Dark", func() {
fyne.GetSettings().SetTheme("dark")
Expand Down
2 changes: 1 addition & 1 deletion layout/listlayout.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ type listLayout struct {
}

func isVerticalSpacer(obj interface{}) bool {
if spacer, ok := obj.(fyne.SpacerObject); ok {
if spacer, ok := obj.(SpacerObject); ok {
return spacer.ExpandVertical()
}

Expand Down
4 changes: 2 additions & 2 deletions layout/listlayout_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ func TestSpacerListLayout(t *testing.T) {
obj2 := NewMinSizeRect(cellSize.Subtract(fyne.NewSize(25, 0)))
obj3 := NewMinSizeRect(cellSize)

container := fyne.NewContainerWithLayout(NewListLayout(), fyne.NewSpacer(), obj1, obj2, obj3)
container := fyne.NewContainerWithLayout(NewListLayout(), NewSpacer(), obj1, obj2, obj3)
container.Resize(fyne.NewSize(100, 300))
assert.Equal(t, container.MinSize(), fyne.NewSize(100, 150+(theme.Padding()*2)))

Expand All @@ -127,7 +127,7 @@ func TestMiddleSpacerListLayout(t *testing.T) {
obj2 := NewMinSizeRect(cellSize.Subtract(fyne.NewSize(25, 0)))
obj3 := NewMinSizeRect(cellSize)

container := fyne.NewContainerWithLayout(NewListLayout(), obj1, obj2, fyne.NewSpacer(), obj3)
container := fyne.NewContainerWithLayout(NewListLayout(), obj1, obj2, NewSpacer(), obj3)
container.Resize(fyne.NewSize(100, 300))
assert.Equal(t, container.MinSize(), fyne.NewSize(100, 150+(theme.Padding()*2)))

Expand Down
49 changes: 49 additions & 0 deletions layout/spacer.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package layout

import "github.com/fyne-io/fyne"

// SpacerObject is a simple object that can be used in a list layout to space
// out child objects
type SpacerObject interface {
ExpandVertical() bool
ExpandHorizontal() bool
}

type spacerObject struct {
size fyne.Size
pos fyne.Position
}

func (s *spacerObject) ExpandVertical() bool {
return true
}

func (s *spacerObject) ExpandHorizontal() bool {
return true
}

func (s *spacerObject) CurrentSize() fyne.Size {
return s.size
}

func (s *spacerObject) Resize(size fyne.Size) {
s.size = size
}

func (s *spacerObject) CurrentPosition() fyne.Position {
return s.pos
}

func (s *spacerObject) Move(pos fyne.Position) {
s.pos = pos
}

func (s *spacerObject) MinSize() fyne.Size {
return fyne.NewSize(0, 0)
}

// NewSpacer returns a spacer object which can fill vertical and horizontal
// space. This is primarily used with a list layout.
func NewSpacer() fyne.CanvasObject {
return &spacerObject{}
}

0 comments on commit 120b904

Please sign in to comment.