Documentation
¶
Overview ¶
Package eui 封装了 Elementui, Button, Edit.
Index ¶
- Constants
- Variables
- func JoinColorString(colors ...uint32) string
- func XChar(UnicodePoint int32) string
- func XCharHex(UnicodePointHex string) string
- type Button
- func (o *Button) ClearIcon() *objBase
- func (b *Button) EnableCircle(isCircle bool) *Button
- func (b *Button) EnablePlain(isPlain bool) *Button
- func (o *Button) GetHImage() int
- func (o *Button) GetHSvg() int
- func (o *Button) GetIconName() string
- func (b *Button) GetRound() int32
- func (b *Button) IsCircle() bool
- func (b *Button) IsPlain() bool
- func (o *Button) SetHImage(hImage int) *objBase
- func (o *Button) SetHSvg(hSvg int) *objBase
- func (o *Button) SetIconHex(iconHex string) *objBase
- func (o *Button) SetIconName(iconName string) *objBase
- func (o *Button) SetIconUnicode(iconUnicode int32) *objBase
- func (b *Button) SetLoading(on bool, svgSize int32, text string) *Button
- func (b *Button) SetRound(round int32) *Button
- func (b *Button) SetSizeEle(size int) *Button
- func (b *Button) SetStyle(style int) *Button
- type ButtonOption
- type Edit
- func (o *Edit) ClearIcon() *objBase
- func (e *Edit) EnableAutoColor(isAutoColor bool) *Edit
- func (e *Edit) EnableRight(isRight bool) *Edit
- func (o *Edit) GetHImage() int
- func (o *Edit) GetHSvg() int
- func (o *Edit) GetIconName() string
- func (e *Edit) GetRound() int32
- func (e *Edit) IsAutoColor() bool
- func (e *Edit) IsRight() bool
- func (o *Edit) SetHImage(hImage int) *objBase
- func (o *Edit) SetHSvg(hSvg int) *objBase
- func (o *Edit) SetIconHex(iconHex string) *objBase
- func (o *Edit) SetIconName(iconName string) *objBase
- func (o *Edit) SetIconUnicode(iconUnicode int32) *objBase
- func (e *Edit) SetRound(round int32) *Edit
- func (e *Edit) SetSizeEle(size int) *Edit
- type EditOption
- type Elementui
- func (e *Elementui) ChangeButton(hBtn int, opts ...ButtonOption) *Button
- func (e *Elementui) ChangeEdit(hEdit int, opts ...EditOption) *Edit
- func (e *Elementui) CreateButton(text string, hParent int, opts ...ButtonOption) *Button
- func (e *Elementui) CreateEdit(hParent int, opts ...EditOption) *Edit
- func (e *Elementui) GetFont() map[string]int
Constants ¶
const ( ButtonSize_Default = iota + 1 // 98x40 ButtonSize_Mdeium // 98x36 ButtonSize_Small // 80x32 ButtonSize_Mini // 80x28 )
const ( ButtonStyle_Default = iota ButtonStyle_Primary ButtonStyle_Success ButtonStyle_Info ButtonStyle_Warning ButtonStyle_Danger ButtonStyle_Text )
const ( EditSize_Default = iota + 1 // 180x40 EditSize_Mdeium // 180x36 EditSize_Small // 180x32 EditSize_Mini // 180x28 )
Variables ¶
var ButtonBgColors = map[int]string{ ButtonStyle_Default: JoinColorString(xc.RGBA(255, 255, 255, 255), xc.RGBA(236, 245, 255, 255), xc.RGBA(236, 245, 255, 255), 0, xc.RGBA(255, 255, 255, 255)), ButtonStyle_Primary: JoinColorString(xc.RGBA(64, 158, 255, 255), xc.RGBA(102, 177, 255, 255), xc.RGBA(58, 142, 230, 255), 0, xc.RGBA(160, 207, 255, 255)), ButtonStyle_Success: JoinColorString(xc.RGBA(103, 194, 58, 255), xc.RGBA(133, 206, 97, 255), xc.RGBA(93, 175, 52, 255), 0, xc.RGBA(179, 225, 157, 255)), ButtonStyle_Info: JoinColorString(xc.RGBA(144, 147, 153, 255), xc.RGBA(166, 169, 173, 255), xc.RGBA(130, 132, 138, 255), 0, xc.RGBA(200, 201, 204, 255)), ButtonStyle_Warning: JoinColorString(xc.RGBA(230, 162, 60, 255), xc.RGBA(235, 181, 99, 255), xc.RGBA(207, 146, 54, 255), 0, xc.RGBA(243, 209, 158, 255)), ButtonStyle_Danger: JoinColorString(xc.RGBA(245, 108, 108, 255), xc.RGBA(247, 137, 137, 255), xc.RGBA(221, 97, 97, 255), 0, xc.RGBA(250, 182, 182, 255)), }
ButtonBgColors 存放按钮不同样式的背景颜色字符串, 不包含朴素按钮的.
- 顺序: Leave, Stay, Down, Check, Disable
var ButtonBgColors_Plain = map[int]string{ ButtonStyle_Primary: JoinColorString(xc.RGBA(236, 245, 255, 255), xc.RGBA(64, 158, 255, 255), xc.RGBA(58, 142, 230, 255), 0, xc.RGBA(236, 245, 255, 255)), ButtonStyle_Success: JoinColorString(xc.RGBA(240, 249, 235, 255), xc.RGBA(103, 194, 58, 255), xc.RGBA(93, 175, 52, 255), 0, xc.RGBA(240, 249, 235, 255)), ButtonStyle_Info: JoinColorString(xc.RGBA(244, 244, 245, 255), xc.RGBA(144, 147, 153, 255), xc.RGBA(130, 132, 138, 255), 0, xc.RGBA(244, 244, 245, 255)), ButtonStyle_Warning: JoinColorString(xc.RGBA(253, 246, 236, 255), xc.RGBA(230, 162, 60, 255), xc.RGBA(207, 146, 54, 255), 0, xc.RGBA(253, 246, 236, 255)), ButtonStyle_Danger: JoinColorString(xc.RGBA(254, 240, 240, 255), xc.RGBA(245, 108, 108, 255), xc.RGBA(221, 97, 97, 255), 0, xc.RGBA(254, 240, 240, 255)), }
ButtonBgColors_Plain 存放朴素按钮不同样式的背景颜色字符串, 不包含 default 样式的
- 顺序: Leave, Stay, Down, Check, Disable
var ButtonBorderColors_Plain = map[int]string{ ButtonStyle_Primary: JoinColorString(xc.RGBA(179, 216, 255, 255), xc.RGBA(64, 158, 255, 255), xc.RGBA(58, 142, 230, 255), 0, xc.RGBA(217, 236, 255, 255)), ButtonStyle_Success: JoinColorString(xc.RGBA(194, 231, 176, 255), xc.RGBA(103, 194, 58, 255), xc.RGBA(93, 175, 52, 255), 0, xc.RGBA(225, 243, 216, 255)), ButtonStyle_Info: JoinColorString(xc.RGBA(211, 212, 214, 255), xc.RGBA(144, 147, 153, 255), xc.RGBA(130, 132, 138, 255), 0, xc.RGBA(233, 233, 235, 255)), ButtonStyle_Warning: JoinColorString(xc.RGBA(245, 218, 177, 255), xc.RGBA(230, 162, 60, 255), xc.RGBA(207, 146, 54, 255), 0, xc.RGBA(250, 236, 216, 255)), ButtonStyle_Danger: JoinColorString(xc.RGBA(251, 196, 196, 255), xc.RGBA(245, 108, 108, 255), xc.RGBA(221, 97, 97, 255), 0, xc.RGBA(253, 226, 226, 255)), }
ButtonBorderColors_Plain 存放朴素按钮不同样式的边框颜色字符串, 不包含 default 样式的
- 顺序: Leave, Stay, Down, Check, Disable
var ButtonTextColors_Plain = map[int]string{ ButtonStyle_Primary: JoinColorString(xc.RGBA(64, 158, 255, 255), xc.RGBA(255, 255, 255, 255), xc.RGBA(255, 255, 255, 255), 0, xc.RGBA(140, 197, 255, 255)), ButtonStyle_Success: JoinColorString(xc.RGBA(103, 194, 58, 255), xc.RGBA(255, 255, 255, 255), xc.RGBA(255, 255, 255, 255), 0, xc.RGBA(164, 218, 137, 255)), ButtonStyle_Info: JoinColorString(xc.RGBA(144, 147, 153, 255), xc.RGBA(255, 255, 255, 255), xc.RGBA(255, 255, 255, 255), 0, xc.RGBA(188, 190, 194, 255)), ButtonStyle_Warning: JoinColorString(xc.RGBA(230, 162, 60, 255), xc.RGBA(255, 255, 255, 255), xc.RGBA(255, 255, 255, 255), 0, xc.RGBA(240, 199, 138, 255)), ButtonStyle_Danger: JoinColorString(xc.RGBA(245, 108, 108, 255), xc.RGBA(255, 255, 255, 255), xc.RGBA(255, 255, 255, 255), 0, xc.RGBA(249, 167, 167, 255)), }
ButtonTextColors_Plain 存放朴素按钮不同样式的字体颜色字符串, 不包含 default 样式的
- 顺序: Leave, Stay, Down, Check, Disable
Functions ¶
func JoinColorString ¶
JoinColorString 将颜色数组拼接成字符串, 以英文逗号分割.
Types ¶
type Button ¶
Button 是 Elementui 风格的按钮, 继承 widget.Button.
func (*Button) ClearIcon ¶
func (o *Button) ClearIcon() *objBase
ClearIcon 清除掉已设置的 Font Awesome 图标, hsvg 和 himage.
func (*Button) GetIconName ¶
func (o *Button) GetIconName() string
GetIconName 获取已设置的 Font Awesome 图标名.
func (*Button) SetHImage ¶
func (o *Button) SetHImage(hImage int) *objBase
SetHImage 设置炫彩图片句柄.
hImage: 炫彩图片句柄.
func (*Button) SetHSvg ¶
func (o *Button) SetHSvg(hSvg int) *objBase
SetHSvg 设置炫彩 svg 句柄.
hSvg: 炫彩 svg 句柄.
func (*Button) SetIconHex ¶
func (o *Button) SetIconHex(iconHex string) *objBase
SetIconHex 设置 Font Awesome 图标对应的 Unicode 码点十六进制文本.
iconHex: Font Wesome 图标对应的 Unicode 码点十六进制文本, 如'f1b0'相当于'fa-solid fa-paw'.
func (*Button) SetIconName ¶
func (o *Button) SetIconName(iconName string) *objBase
SetIconName 设置 Font Wesome 图标名.
iconName: Font Awesome 图标名.
- 如'fa-solid fa-paw', 前面是风格, 后面是图标名, 用空格分开, 其中风格可省略, 没有风格时会自动根据'fa-solid', 'fa-brands', 'fa-regular'的顺序尝试添加风格.
- 图标大全: https://fa6.dashgame.com, 在网页里点导航栏图标, 然后点免费, 可筛选出 2000+ 免费图标, 点击图标会复制完整风格+图标名到剪贴板, 可直接使用. 内置 FontAwesome 版本为 6.6.0
func (*Button) SetIconUnicode ¶
func (o *Button) SetIconUnicode(iconUnicode int32) *objBase
SetIconUnicode 设置 Font Awesome 图标对应的 Unicode 码点十进制数字.
iconUnicode: Font Awesome 图标对应的 Unicode 码点十进制数字, 如 61872 相当于'fa-solid fa-paw'.
func (*Button) SetLoading ¶
SetLoading 启用或关闭加载中状态, 开启后会显示加载中图标, 同时按钮会禁止点击, 内部已自动重绘按钮.
on: 是否启用.
svgSize: 图标大小, 小于 1 时默认为 20.
text: 同时更改加载中按钮的文本, on 参数为 true 时生效,加载状态结束后自动恢复原文本, 如果为空则不会更改按钮文本.
func (*Button) SetSizeEle ¶
SetSizeEle 设置 Button 的大小. 只能使用预设好的常量.
size: 预设好的大小, 可使用常量: ButtonSize_.
- 1 = default (98x40)
- 2 = medium (98x36)
- 3 = small (80x32)
- 4 = mini (80x28)
type ButtonOption ¶
type ButtonOption struct {
// 自定义炫彩 svg 句柄.
// - 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
HSvg int
// 自定义炫彩图片句柄.
// - 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
HImage int
// Font Wesome 图标对应的 Unicode 码点十进制数字, 如 61872 相当于'fa-solid fa-paw'.
// - 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
IconUnicode int32
// Font Wesome 图标对应的 Unicode 码点十六进制文本, 如'f1b0'相当于'fa-solid fa-paw'.
// - 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
IconHex string
// Font Wesome 图标名.
// - 如'fa-solid fa-paw', 前面是风格, 后面是图标名, 用空格分开, 其中风格可省略, 没有风格时会自动根据'fa-solid', 'fa-brands', 'fa-regular'的顺序尝试添加风格.
// - 图标大全: https://fa6.dashgame.com, 在网页里点导航栏图标, 然后点免费, 可筛选出 2000+ 免费图标, 点击图标会复制完整风格+图标名到剪贴板, 可直接使用. 内置 FontAwesome 版本为6.6.0
// - 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
Icon string
X, Y, Width, Height int32
// 按钮尺寸, 默认为 ButtonSize_Default, 可使用常量: ButtonSize_
// - 使用预设的尺寸效果会比较好.
// - 如果 Width 或 Height 字段 > 0 那么本字段就无效.
// - 1 = default (98x40)
// - 2 = medium (98x36)
// - 3 = small (80x32)
// - 4 = mini (80x28)
Size int
// 按钮样式, 默认为 ButtonStyle_Default, 可使用常量: ButtonStyle_
// - 0 = default
// - 1 = primary
// - 2 = success
// - 3 = info
// - 4 = warning
// - 5 = danger
// - 6 = text
Style int
// 是否为朴素按钮, 默认为 false.
// - 当 Style 字段 = ButtonStyle_Text 时本字段无效.
IsPlain bool
// 是否为圆形按钮, 默认为 false.
// - 当 Style 字段 = ButtonStyle_Text 时本字段无效.
IsCircle bool
}
ButtonOption 按钮选项.
type Edit ¶
Edit 是 Elementui 风格的编辑框, 继承 widget.Edit.
func (*Edit) ClearIcon ¶
func (o *Edit) ClearIcon() *objBase
ClearIcon 清除掉已设置的 Font Awesome 图标, hsvg 和 himage.
func (*Edit) EnableAutoColor ¶
EnableAutoColor 设置编辑框的图标颜色是否根据焦点颜色自动改变.
isAutoColor: 图标颜色是否根据焦点颜色自动改变.
func (*Edit) SetHImage ¶
func (o *Edit) SetHImage(hImage int) *objBase
SetHImage 设置炫彩图片句柄.
hImage: 炫彩图片句柄.
func (*Edit) SetHSvg ¶
func (o *Edit) SetHSvg(hSvg int) *objBase
SetHSvg 设置炫彩 svg 句柄.
hSvg: 炫彩 svg 句柄.
func (*Edit) SetIconHex ¶
func (o *Edit) SetIconHex(iconHex string) *objBase
SetIconHex 设置 Font Awesome 图标对应的 Unicode 码点十六进制文本.
iconHex: Font Wesome 图标对应的 Unicode 码点十六进制文本, 如'f1b0'相当于'fa-solid fa-paw'.
func (*Edit) SetIconName ¶
func (o *Edit) SetIconName(iconName string) *objBase
SetIconName 设置 Font Wesome 图标名.
iconName: Font Awesome 图标名.
- 如'fa-solid fa-paw', 前面是风格, 后面是图标名, 用空格分开, 其中风格可省略, 没有风格时会自动根据'fa-solid', 'fa-brands', 'fa-regular'的顺序尝试添加风格.
- 图标大全: https://fa6.dashgame.com, 在网页里点导航栏图标, 然后点免费, 可筛选出 2000+ 免费图标, 点击图标会复制完整风格+图标名到剪贴板, 可直接使用. 内置 FontAwesome 版本为 6.6.0
func (*Edit) SetIconUnicode ¶
func (o *Edit) SetIconUnicode(iconUnicode int32) *objBase
SetIconUnicode 设置 Font Awesome 图标对应的 Unicode 码点十进制数字.
iconUnicode: Font Awesome 图标对应的 Unicode 码点十进制数字, 如 61872 相当于'fa-solid fa-paw'.
func (*Edit) SetSizeEle ¶
SetSizeEle 设置编辑框的大小. 只能使用预设好的常量.
size: 预设好的大小, 可使用常量: EditSize_.
- 1 = default (180x40)
- 2 = medium (180x36)
- 3 = small (180x32)
- 4 = mini (180x28)
type EditOption ¶
type EditOption struct {
// 自定义炫彩 svg 句柄.
// - 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
HSvg int
// 自定义炫彩图片句柄.
// - 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
HImage int
// Font Wesome 图标对应的 Unicode 码点十进制数字, 如 61872 相当于'fa-solid fa-paw'.
// - 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
IconUnicode int32
// Font Wesome 图标对应的 Unicode 码点十六进制文本, 如'f1b0'相当于'fa-solid fa-paw'.
// - 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
IconHex string
// Font Wesome 图标名.
// - 如'fa-solid fa-paw', 前面是风格, 后面是图标名, 用空格分开, 其中风格可省略, 没有风格时会自动根据'fa-solid', 'fa-brands', 'fa-regular'的顺序尝试添加风格.
// - 图标大全: https://fa6.dashgame.com, 在网页里点导航栏图标, 然后点免费, 可筛选出 2000+ 免费图标, 点击图标会复制完整风格+图标名到剪贴板, 可直接使用. 内置 FontAwesome 版本为 6.6.0
// - 注意: HSvg, HImage, IconUnicode, IconHex, Icon 这几个参数只需要填一个即可, 填多个的话, 生效顺序优先级为: HSvg > HImage > IconUnicode > IconHex > Icon.
Icon string
// 当无内容时显示的文本.
DefaultText string
X, Y, Width, Height int32
// 编辑框尺寸, 默认为 EditSize_Default, 可使用常量: EditSize_
// - 使用预设的尺寸效果会比较好.
// - 如果 Width 或 Height 字段 > 0 那么本字段就无效.
// - 1 = default (180x40)
// - 2 = medium (180x36)
// - 3 = small (180x32)
// - 4 = mini (180x28)
Size int
// 图标是否在右边.
IsRight bool
// 图标颜色是否根据焦点颜色自动改变.
// - 如果你使用的是 HImage, 则此参数无效.
IsAutoColor bool
}
EditOption 编辑框选项.
type Elementui ¶
type Elementui struct {
// contains filtered or unexported fields
}
func NewElementui ¶
NewElementui 创建 Elementui 对象.
fontSize: 字体大小. 一般使用 12.
dpi: 窗口 dpi. 使用窗口.GetDPI()获取.
func (*Elementui) ChangeButton ¶
func (e *Elementui) ChangeButton(hBtn int, opts ...ButtonOption) *Button
ChangeButton 改变现有的按钮.
- 可配合界面设计器来使用, 设计器里放按钮, 然后在代码里调用改变样式.
hBtn: 按钮句柄. 如果不是按钮句柄, 函数会返回 nil.
opts: ButtonOption 按钮选项, 可不填. 只有填写了其中的 Size 字段, 才会改变现有按钮的宽高.
func (*Elementui) ChangeEdit ¶
func (e *Elementui) ChangeEdit(hEdit int, opts ...EditOption) *Edit
ChangeEdit 改变现有的编辑框.
- 可配合界面设计器来使用, 设计器里放编辑框, 然后在代码里调用改变样式.
hEdit: 编辑框句柄. 如果不是编辑框句柄, 函数会返回 nil.
opts: EditOption 编辑框选项, 可不填. 只有填写了其中的 Size 字段, 才会改变现有编辑框的宽高.
func (*Elementui) CreateButton ¶
func (e *Elementui) CreateButton(text string, hParent int, opts ...ButtonOption) *Button
CreateButton 创建按钮.
- 内存注册了元素绘制事件.
text: 文本.
hParent: 父元素或父窗口句柄.
opts: ButtonOption 按钮选项, 可不填.
func (*Elementui) CreateEdit ¶
func (e *Elementui) CreateEdit(hParent int, opts ...EditOption) *Edit
CreateEdit 创建编辑框.
- 内部设置了边框大小, 这个影响的是文本的位置. 如果觉得不合适可自行调用 SetBorderSize 进行设置.
- 无图标时左右边框大小都是 15.
- 左边图标时, 左边框大小是 29, 右边框大小是 15.
- 右边图标时, 左边框大小是 15, 右边框大小是 29.
- 内部注册了元素绘制事件, 鼠标进入/离开事件, 编辑框光标位置改变事件.
hParent: 父元素或父窗口句柄.
opts: EditOption 编辑框选项, 可不填.