first commit
This commit is contained in:
84
ICSharpCode.TextEditor/Project/Src/Util/TipSection.cs
Normal file
84
ICSharpCode.TextEditor/Project/Src/Util/TipSection.cs
Normal file
@@ -0,0 +1,84 @@
|
||||
// <file>
|
||||
// <copyright see="prj:///doc/copyright.txt"/>
|
||||
// <license see="prj:///doc/license.txt"/>
|
||||
// <owner name="none" email=""/>
|
||||
// <version>$Revision$</version>
|
||||
// </file>
|
||||
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
|
||||
namespace ICSharpCode.TextEditor.Util
|
||||
{
|
||||
abstract class TipSection
|
||||
{
|
||||
SizeF tipAllocatedSize;
|
||||
Graphics tipGraphics;
|
||||
SizeF tipMaxSize;
|
||||
SizeF tipRequiredSize;
|
||||
|
||||
protected TipSection(Graphics graphics)
|
||||
{
|
||||
tipGraphics = graphics;
|
||||
}
|
||||
|
||||
public abstract void Draw(PointF location);
|
||||
|
||||
public SizeF GetRequiredSize()
|
||||
{
|
||||
return tipRequiredSize;
|
||||
}
|
||||
|
||||
public void SetAllocatedSize(SizeF allocatedSize)
|
||||
{
|
||||
Debug.Assert(allocatedSize.Width >= tipRequiredSize.Width &&
|
||||
allocatedSize.Height >= tipRequiredSize.Height);
|
||||
|
||||
tipAllocatedSize = allocatedSize; OnAllocatedSizeChanged();
|
||||
}
|
||||
|
||||
public void SetMaximumSize(SizeF maximumSize)
|
||||
{
|
||||
tipMaxSize = maximumSize; OnMaximumSizeChanged();
|
||||
}
|
||||
|
||||
protected virtual void OnAllocatedSizeChanged()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected virtual void OnMaximumSizeChanged()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected void SetRequiredSize(SizeF requiredSize)
|
||||
{
|
||||
requiredSize.Width = Math.Max(0, requiredSize.Width);
|
||||
requiredSize.Height = Math.Max(0, requiredSize.Height);
|
||||
requiredSize.Width = Math.Min(tipMaxSize.Width, requiredSize.Width);
|
||||
requiredSize.Height = Math.Min(tipMaxSize.Height, requiredSize.Height);
|
||||
|
||||
tipRequiredSize = requiredSize;
|
||||
}
|
||||
|
||||
protected Graphics Graphics {
|
||||
get {
|
||||
return tipGraphics;
|
||||
}
|
||||
}
|
||||
|
||||
protected SizeF AllocatedSize {
|
||||
get {
|
||||
return tipAllocatedSize;
|
||||
}
|
||||
}
|
||||
|
||||
protected SizeF MaximumSize {
|
||||
get {
|
||||
return tipMaxSize;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user