forked from DebugST/STTextBox
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathISTTextBoxRender.cs
More file actions
94 lines (92 loc) · 3.88 KB
/
ISTTextBoxRender.cs
File metadata and controls
94 lines (92 loc) · 3.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
namespace ST.Library.UI.STTextBox
{
/// <summary>
/// All drawing of STTextBox comes from this interface.
/// Calling rules:
/// STTextBox guarantees that OnBeginPaint(Graphics) or BeginPaint()
/// must be called before calling all drawing functions in this interface.
/// And call OnEndPaint(Graphics) or EndPaint() at the end of drawing.
/// During the OnPaint of the control, OnBegin/EndPaint is called for initialization.
/// Otherwise call Begin/EndPaint.
///
/// * However, if you rewrite some functions in TextView or ITextView.
/// * It needs to be called by the developer himself.
///
/// The STTextBox release uses GDI+ for rendering by default.
/// </summary>
public interface ISTTextBoxRender
{
/// <summary>
/// Bind the control
/// </summary>
/// <param name="ctrl">the STTextBox control</param>
void BindControl(Control ctrl);
void UnbindControl();
/// <summary>
/// This function will be called at the start of the STTextBox.Paint event.
/// </summary>
/// <param name="g">PaintEventArgs.Graphics</param>
void OnBeginPaint(Graphics g);
/// <summary>
/// This function will be called at the end of the STTextBox.Paint event.
/// * The destruction of [g] should not be done in this function, it should be handled by STTextBox.Paint.
/// </summary>
/// <param name="g">PaintEventArgs.Graphics</param>
void OnEndPaint(Graphics g);
/// <summary>
/// Developers should call this method instead of OnBegin(Graphics) when initializing drawing is required.
/// </summary>
void BeginPaint();
/// <summary>
/// This function corresponds to BeginPaint().
/// </summary>
void EndPaint();
/// <summary>
/// Set how many spaces are required for a tab.
/// </summary>
/// <param name="nSize">Number of spaces</param>
/// <returns>The old size</returns>
int SetTabSize(int nSize);
/// <summary>
/// Get how many spaces are required for a tab.
/// </summary>
/// <returns>Number of spaces</returns>
int GetSpaceWidth();
int GetFontHeight();
int GetTabSize();
/// <summary>
/// Get how much width the tab character needs at the current position.
/// </summary>
/// <param name="nLeftWidth">The position relative to the start of the text</param>
/// <returns>Width</returns>
int GetTabWidth(int nLeftWidth);
/// <summary>
/// How many spaces are needed to get tabs.
/// </summary>
/// <param name="nLeftWidth">The position relative to the start of the text</param>
/// <param name="nTabSize">How many spaces are required for a tab</param>
/// <returns>Space count</returns>
float GetTabSpaceCount(int nLeftWidth, int nTabSize);
/// <summary>
/// Get the string width
/// </summary>
/// <param name="strText">text</param>
/// <param name="style">Text style</param>
/// <param name="nLeftWidth">The position relative to the start of the text</param>
/// <returns>Width</returns>
int GetStringWidth(string strText, TextStyle style, int nLeftWidth);
void SetClip(Rectangle rect);
void ResetClip();
void DrawImage(Image img, Rectangle rect);
void DrawString(string strText, Font ft, Color color, Rectangle rect, StringFormat sf);
void DrawString(string strText, TextStyle style, Rectangle rect);
void FillRectangle(Color backColor, Rectangle rect);
void FillRectangle(Color backColor, int nX, int nY, int nWidth, int nHeight);
}
}