66 lines
1.8 KiB
Go
66 lines
1.8 KiB
Go
package views
|
|
|
|
import (
|
|
"fyne.io/fyne/v2"
|
|
"work_cation/models"
|
|
"work_cation/views/createView"
|
|
"work_cation/views/showView"
|
|
)
|
|
|
|
// Tutorial 定义教程的数据结构
|
|
type Tutorial struct {
|
|
Title, Intro string
|
|
View func(w fyne.Window) fyne.CanvasObject
|
|
SupportWeb bool
|
|
}
|
|
|
|
var (
|
|
// Tutorials 定义每个教程的元数据
|
|
Tutorials = map[string]Tutorial{
|
|
"welcome": {"主页", "", mainUserViews, true},
|
|
"canvas": {"我的", "", allCardsViews, true},
|
|
"create": {"新建", "", allCreateCards, true},
|
|
"otherUsers": {"同事", "", otherUser, true},
|
|
"followUsers": {"关注", "", followUsers, true},
|
|
}
|
|
|
|
// TutorialIndex 定义我们的教程应该如何在索引树中布局
|
|
TutorialIndex = map[string][]string{
|
|
"": {"welcome", "canvas", "followUsers", "otherUsers", "create"},
|
|
//"collections": {"list", "table", "tree"},
|
|
//"containers": {"apptabs", "border", "box", "center", "doctabs", "grid", "scroll", "split"},
|
|
//"widgets": {"accordion", "button", "card", "entry", "form", "input", "progress", "text", "toolbar"}, 58 * 3 + 106 = 280
|
|
}
|
|
)
|
|
|
|
type cardInfo struct {
|
|
Name string
|
|
createView func(w fyne.Window) fyne.CanvasObject
|
|
createSize fyne.Size
|
|
showView func(fyne.Window, *models.BaseCard) (fyne.CanvasObject, error)
|
|
updateView func(fyne.Window, *models.BaseCard) fyne.CanvasObject
|
|
}
|
|
|
|
var (
|
|
cardTypeMap = map[string]cardInfo{
|
|
models.ToolTypeNoVarErlang: {
|
|
"Erlang代码脚本",
|
|
nil,
|
|
fyne.NewSize(0, 0),
|
|
showView.ErlangCardNoVarView,
|
|
createView.UpdateErlangCard},
|
|
models.ToolTypeErlang: {
|
|
"Erlang代码脚本模版",
|
|
createView.CreateErlangCard,
|
|
fyne.NewSize(600, 400),
|
|
showView.ErlangCardView,
|
|
createView.UpdateErlangCard},
|
|
models.ToolTypeExecFiles: {
|
|
"自定义可执行工具",
|
|
createView.CreateExecFile,
|
|
fyne.NewSize(600, 520),
|
|
showView.ExecFileCardView,
|
|
nil},
|
|
}
|
|
)
|