MimeIcon no longer embeds tomo.Box
This commit is contained in:
		
							parent
							
								
									ae74c3dbf4
								
							
						
					
					
						commit
						694f9127c0
					
				
							
								
								
									
										29
									
								
								mimeicon.go
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								mimeicon.go
									
									
									
									
									
								
							@ -4,22 +4,29 @@ import "git.tebibyte.media/tomo/tomo"
 | 
			
		||||
import "git.tebibyte.media/tomo/tomo/data"
 | 
			
		||||
import "git.tebibyte.media/tomo/tomo/canvas"
 | 
			
		||||
 | 
			
		||||
var _ tomo.Object = new(MimeIcon)
 | 
			
		||||
 | 
			
		||||
// MimeIcon displays an icon of a MIME type.
 | 
			
		||||
type MimeIcon struct {
 | 
			
		||||
	tomo.Box
 | 
			
		||||
	box  tomo.Box
 | 
			
		||||
	mime data.Mime
 | 
			
		||||
	size tomo.IconSize
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewMimeIcon creates a new icon from a MIME type.
 | 
			
		||||
func NewMimeIcon (mime data.Mime, size tomo.IconSize) *MimeIcon {
 | 
			
		||||
	this := &MimeIcon {
 | 
			
		||||
		Box: tomo.NewBox(),
 | 
			
		||||
	mimeIcon := &MimeIcon {
 | 
			
		||||
		box: tomo.NewBox(),
 | 
			
		||||
	}
 | 
			
		||||
	this.SetRole(tomo.R("objects", "MimeIcon"))
 | 
			
		||||
	this.SetIcon(mime, size)
 | 
			
		||||
	this.OnIconSetChange(this.handleIconSetChange)
 | 
			
		||||
	return this
 | 
			
		||||
	mimeIcon.box.SetRole(tomo.R("objects", "MimeIcon"))
 | 
			
		||||
	mimeIcon.SetIcon(mime, size)
 | 
			
		||||
	mimeIcon.box.OnIconSetChange(mimeIcon.handleIconSetChange)
 | 
			
		||||
	return mimeIcon
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetBox returns the underlying box.
 | 
			
		||||
func (this *MimeIcon) GetBox () tomo.Box {
 | 
			
		||||
	return this.box
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// SetIcon sets the MIME type and size of the icon.
 | 
			
		||||
@ -35,12 +42,12 @@ func (this *MimeIcon) handleIconSetChange () {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (this *MimeIcon) setTexture (texture canvas.Texture) {
 | 
			
		||||
	this.SetAttr(tomo.ATexture(texture))
 | 
			
		||||
	this.SetAttr(tomo.ATextureMode(tomo.TextureModeCenter))
 | 
			
		||||
	this.box.SetAttr(tomo.ATexture(texture))
 | 
			
		||||
	this.box.SetAttr(tomo.ATextureMode(tomo.TextureModeCenter))
 | 
			
		||||
	if texture == nil {
 | 
			
		||||
		this.SetAttr(tomo.AMinimumSize(0, 0))
 | 
			
		||||
		this.box.SetAttr(tomo.AMinimumSize(0, 0))
 | 
			
		||||
	} else {
 | 
			
		||||
		bounds := texture.Bounds()
 | 
			
		||||
		this.SetAttr(tomo.AttrMinimumSize(bounds.Max.Sub(bounds.Min)))
 | 
			
		||||
		this.box.SetAttr(tomo.AttrMinimumSize(bounds.Max.Sub(bounds.Min)))
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user