Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
易企天创
zentaoatf
提交
9930c042
Z
zentaoatf
项目概览
易企天创
/
zentaoatf
11 个月 前同步成功
通知
11
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
3
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zentaoatf
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
3
Issue
3
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9930c042
编写于
7月 26, 2019
作者:
aaronchen2k2k
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
code refactoring
上级
3f6ab813
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
158 addition
and
217 deletion
+158
-217
src/cui.go
src/cui.go
+60
-182
src/ui/buttonWidget.go
src/ui/buttonWidget.go
+23
-11
src/ui/labelWidget.go
src/ui/labelWidget.go
+8
-5
src/ui/textWidget.go
src/ui/textWidget.go
+22
-19
src/ui/uiUtils.go
src/ui/uiUtils.go
+45
-0
未找到文件。
src/cui.go
浏览文件 @
9930c042
...
...
@@ -15,12 +15,7 @@ import (
)
const
(
leftWidth
=
32
labelWidth
=
15
inputFullLineWidth
=
69
inputNumbWidth
=
25
buttonWidth
=
10
space
=
2
leftWidth
=
32
)
var
server
*
httptest
.
Server
...
...
@@ -42,7 +37,7 @@ func main() {
layout
(
g
)
if
err
:=
key
b
indings
(
g
);
err
!=
nil
{
if
err
:=
key
B
indings
(
g
);
err
!=
nil
{
log
.
Panicln
(
err
)
}
...
...
@@ -54,16 +49,14 @@ func main() {
func
layout
(
g
*
gocui
.
Gui
)
error
{
maxX
,
maxY
:=
g
.
Size
()
q
ickbarView
:=
ui
.
NewLabelWidget
(
g
,
"qickbar"
,
0
,
0
,
leftWidth
,
""
)
viewMap
[
"root"
]
=
append
(
viewMap
[
"root"
],
q
ickb
arView
.
Name
())
q
uickBarView
:=
ui
.
NewPanelWidget
(
g
,
"quickBarView"
,
0
,
0
,
leftWidth
,
2
,
""
)
viewMap
[
"root"
]
=
append
(
viewMap
[
"root"
],
q
uickB
arView
.
Name
())
importView
:=
ui
.
NewLabelWidget
(
g
,
"import"
,
3
,
0
,
9
,
"Import"
)
importView
:=
ui
.
NewLabelWidget
(
g
,
"import"
,
3
,
0
,
"Import"
)
viewMap
[
"root"
]
=
append
(
viewMap
[
"root"
],
importView
.
Name
())
importView
.
Frame
=
false
switchView
:=
ui
.
NewLabelWidget
(
g
,
"switch"
,
19
,
0
,
13
,
"Switch"
)
switchView
:=
ui
.
NewLabelWidget
(
g
,
"switch"
,
19
,
0
,
"Switch"
)
viewMap
[
"root"
]
=
append
(
viewMap
[
"root"
],
switchView
.
Name
())
switchView
.
Frame
=
false
sideView
:=
ui
.
NewPanelWidget
(
g
,
"side"
,
0
,
2
,
leftWidth
,
maxY
-
3
,
""
)
viewMap
[
"root"
]
=
append
(
viewMap
[
"root"
],
sideView
.
Name
())
...
...
@@ -81,43 +74,13 @@ func layout(g *gocui.Gui) error {
ui
.
NewHelpWidget
(
g
)
return
nil
}
func
quit
(
g
*
gocui
.
Gui
,
v
*
gocui
.
View
)
error
{
return
gocui
.
ErrQuit
}
func
showHelp
(
g
*
gocui
.
Gui
,
v
*
gocui
.
View
)
error
{
help
,
_
:=
g
.
View
(
"help"
)
if
help
!=
nil
{
hideHelp
(
g
)
}
else
{
ui
.
NewHelpWidget
(
g
)
}
return
nil
}
func
hideHelp
(
g
*
gocui
.
Gui
)
error
{
help
,
_
:=
g
.
View
(
"help"
)
if
help
!=
nil
{
if
err
:=
g
.
DeleteView
(
"help"
);
err
!=
nil
{
return
err
}
}
return
nil
}
func
keybindings
(
g
*
gocui
.
Gui
)
error
{
if
err
:=
g
.
SetKeybinding
(
""
,
gocui
.
KeyCtrlC
,
gocui
.
ModNone
,
quit
);
err
!=
nil
{
func
keyBindings
(
g
*
gocui
.
Gui
)
error
{
if
err
:=
g
.
SetKeybinding
(
""
,
gocui
.
KeyCtrlC
,
gocui
.
ModNone
,
ui
.
Quit
);
err
!=
nil
{
return
err
}
if
err
:=
g
.
SetKeybinding
(
""
,
gocui
.
KeyCtrlH
,
gocui
.
ModNone
,
showHelp
);
err
!=
nil
{
log
.
Panicln
(
err
)
}
if
err
:=
g
.
SetKeybinding
(
""
,
gocui
.
KeyTab
,
gocui
.
ModNone
,
toggleInput
);
err
!=
nil
{
if
err
:=
g
.
SetKeybinding
(
""
,
gocui
.
KeyCtrlH
,
gocui
.
ModNone
,
ui
.
ShowHelp
);
err
!=
nil
{
log
.
Panicln
(
err
)
}
...
...
@@ -147,7 +110,7 @@ func setEdit(g *gocui.Gui, v *gocui.View) error {
}
func
importProjectUi
(
g
*
gocui
.
Gui
,
v
*
gocui
.
View
)
error
{
h
ideHelp
(
g
)
ui
.
H
ideHelp
(
g
)
maxX
,
_
:=
g
.
Size
()
...
...
@@ -155,141 +118,67 @@ func importProjectUi(g *gocui.Gui, v *gocui.View) error {
slideX
,
_
:=
slideView
.
Size
()
left
:=
slideX
+
2
right
:=
left
+
labelWidth
if
v
,
err
:=
g
.
SetView
(
"urlLabel"
,
left
,
1
,
right
,
3
);
err
!=
nil
{
v
.
Frame
=
false
fmt
.
Fprint
(
v
,
"ZentaoUrl"
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
v
.
Name
())
}
left
=
right
+
space
right
=
left
+
inputFullLineWidth
if
v
,
err
:=
g
.
SetView
(
"urlInput"
,
left
,
1
,
right
,
3
);
err
!=
nil
{
if
err
!=
gocui
.
ErrUnknownView
{
return
err
}
v
.
Clear
()
fmt
.
Fprint
(
v
,
server
.
URL
)
v
.
Editable
=
true
v
.
Wrap
=
true
if
_
,
err
:=
g
.
SetCurrentView
(
"urlInput"
);
err
!=
nil
{
return
err
}
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
v
.
Name
())
right
:=
left
+
ui
.
LabelWidth
urlLabel
:=
ui
.
NewLabelWidget
(
g
,
"urlLabel"
,
left
,
1
,
"ZentaoUrl"
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
urlLabel
.
Name
())
left
=
right
+
ui
.
Space
right
=
left
+
ui
.
TextWidthFull
urlInput
:=
ui
.
NewTextWidget
(
g
,
"urlInput"
,
left
,
1
,
ui
.
TextWidthFull
,
server
.
URL
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
urlInput
.
Name
())
if
_
,
err
:=
g
.
SetCurrentView
(
"urlInput"
);
err
!=
nil
{
return
err
}
left
=
slideX
+
2
right
=
left
+
labelWidth
if
v
,
err
:=
g
.
SetView
(
"productLabel"
,
left
,
4
,
right
,
6
);
err
!=
nil
{
v
.
Frame
=
false
fmt
.
Fprint
(
v
,
"ProdoctId"
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
v
.
Name
())
}
left
=
right
+
space
right
=
left
+
inputNumbWidth
if
v
,
err
:=
g
.
SetView
(
"productInput"
,
left
,
4
,
right
,
6
);
err
!=
nil
{
if
err
!=
gocui
.
ErrUnknownView
{
return
err
}
right
=
left
+
ui
.
LabelWidth
productLabel
:=
ui
.
NewLabelWidget
(
g
,
"productLabel"
,
left
,
4
,
"ProductId"
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
productLabel
.
Name
())
v
.
Editable
=
true
v
.
Wrap
=
true
left
=
right
+
ui
.
Space
right
=
left
+
ui
.
TextWidthHalf
productInput
:=
ui
.
NewTextWidget
(
g
,
"productInput"
,
left
,
4
,
ui
.
TextWidthHalf
,
"1"
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
productInput
.
Name
())
fmt
.
Fprint
(
v
,
"1"
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
v
.
Name
())
}
left
=
right
+
space
right
=
left
+
labelWidth
if
v
,
err
:=
g
.
SetView
(
"taskLabel"
,
left
,
4
,
right
,
6
);
err
!=
nil
{
v
.
Frame
=
false
fmt
.
Fprint
(
v
,
"or TaskId"
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
v
.
Name
())
}
left
=
right
+
space
right
=
left
+
inputNumbWidth
if
v
,
err
:=
g
.
SetView
(
"taskInput"
,
left
,
4
,
right
,
6
);
err
!=
nil
{
if
err
!=
gocui
.
ErrUnknownView
{
return
err
}
left
=
right
+
ui
.
Space
right
=
left
+
ui
.
LabelWidth
taskLabel
:=
ui
.
NewLabelWidget
(
g
,
"taskLabel"
,
left
,
4
,
"or TaskId"
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
taskLabel
.
Name
())
v
.
Editable
=
true
v
.
Wrap
=
true
fmt
.
Fprint
(
v
,
"1"
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
v
.
Name
())
}
left
=
right
+
ui
.
Space
right
=
left
+
ui
.
TextWidthHalf
taskInput
:=
ui
.
NewTextWidget
(
g
,
"taskInput"
,
left
,
4
,
ui
.
TextWidthHalf
,
"1"
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
taskInput
.
Name
())
left
=
slideX
+
2
right
=
left
+
labelWidth
if
v
,
err
:=
g
.
SetView
(
"languageLabel"
,
left
,
7
,
right
,
9
);
err
!=
nil
{
v
.
Frame
=
false
fmt
.
Fprint
(
v
,
"Language"
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
v
.
Name
())
}
left
=
right
+
space
right
=
left
+
inputNumbWidth
if
v
,
err
:=
g
.
SetView
(
"languageInput"
,
left
,
7
,
right
,
9
);
err
!=
nil
{
if
err
!=
gocui
.
ErrUnknownView
{
return
err
}
v
.
Editable
=
true
v
.
Wrap
=
true
fmt
.
Fprint
(
v
,
"python"
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
v
.
Name
())
}
left
=
right
+
space
right
=
left
+
labelWidth
if
v
,
err
:=
g
.
SetView
(
"singleFileLabel"
,
left
,
7
,
right
,
9
);
err
!=
nil
{
v
.
Frame
=
false
fmt
.
Fprint
(
v
,
"SingleFile"
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
v
.
Name
())
right
=
left
+
ui
.
LabelWidth
languageLabel
:=
ui
.
NewLabelWidget
(
g
,
"languageLabel"
,
left
,
7
,
"Language"
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
languageLabel
.
Name
())
left
=
right
+
ui
.
Space
right
=
left
+
ui
.
TextWidthHalf
languageInput
:=
ui
.
NewTextWidget
(
g
,
"languageInput"
,
left
,
7
,
ui
.
TextWidthHalf
,
"python"
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
languageInput
.
Name
())
left
=
right
+
ui
.
Space
right
=
left
+
ui
.
LabelWidth
singleFileLabel
:=
ui
.
NewLabelWidget
(
g
,
"singleFileLabel"
,
left
,
7
,
"SingleFile"
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
singleFileLabel
.
Name
())
left
=
right
+
ui
.
Space
right
=
left
+
ui
.
TextWidthHalf
singleFileInput
:=
ui
.
NewLabelWidget
(
g
,
"singleFileInput"
,
left
,
7
,
"[*]"
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
singleFileInput
.
Name
())
if
err
:=
g
.
SetKeybinding
(
"singleFileInput"
,
gocui
.
KeySpace
,
gocui
.
ModNone
,
changeSingleFile
);
err
!=
nil
{
return
err
}
left
=
right
+
space
right
=
left
+
inputNumbWidth
if
v
,
err
:=
g
.
SetView
(
"singleFileInput"
,
left
,
7
,
right
,
9
);
err
!=
nil
{
if
err
!=
gocui
.
ErrUnknownView
{
return
err
}
v
.
Frame
=
false
buttonX
:=
(
maxX
-
leftWidth
)
/
2
+
leftWidth
-
ui
.
ButtonWidth
submitInput
:=
ui
.
NewButtonWidgetAutoWidth
(
g
,
"submitInput"
,
buttonX
,
10
,
"Submit"
,
importProjectRequest
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
submitInput
.
Name
())
if
err
:=
g
.
SetKeybinding
(
"singleFileInput"
,
gocui
.
KeySpace
,
gocui
.
ModNone
,
changeSingleFile
);
err
!=
nil
{
return
err
}
fmt
.
Fprint
(
v
,
"[*]"
)
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
v
.
Name
())
}
buttonX
:=
(
maxX
-
leftWidth
)
/
2
+
leftWidth
-
buttonWidth
if
v
,
err
:=
g
.
SetView
(
"submitInput"
,
buttonX
,
10
,
buttonX
+
buttonWidth
,
12
);
err
!=
nil
{
if
err
!=
gocui
.
ErrUnknownView
{
return
err
}
v
.
Highlight
=
true
v
.
BgColor
=
gocui
.
ColorGreen
v
.
FgColor
=
gocui
.
ColorBlack
fmt
.
Fprint
(
v
,
" Submit "
)
if
err
:=
g
.
SetKeybinding
(
"submitInput"
,
gocui
.
MouseLeft
,
gocui
.
ModNone
,
importProjectRequest
);
err
!=
nil
{
return
err
}
if
err
:=
g
.
SetKeybinding
(
"submitInput"
,
gocui
.
KeyEnter
,
gocui
.
ModNone
,
importProjectRequest
);
err
!=
nil
{
return
err
}
viewMap
[
"import"
]
=
append
(
viewMap
[
"import"
],
v
.
Name
())
if
err
:=
g
.
SetKeybinding
(
""
,
gocui
.
KeyTab
,
gocui
.
ModNone
,
ui
.
ToggleInput
(
viewMap
[
"import"
]));
err
!=
nil
{
log
.
Panicln
(
err
)
}
return
nil
...
...
@@ -356,14 +245,3 @@ func changeSingleFile(g *gocui.Gui, v *gocui.View) error {
return
nil
}
func
toggleInput
(
g
*
gocui
.
Gui
,
v
*
gocui
.
View
)
error
{
nextView
:=
ui
.
GetNextView
(
v
.
Name
(),
viewMap
[
"import"
])
if
nextView
!=
""
{
_
,
err
:=
g
.
SetCurrentView
(
nextView
)
return
err
}
return
nil
}
src/ui/buttonWidget.go
浏览文件 @
9930c042
...
...
@@ -6,7 +6,8 @@ import (
)
const
(
buttonWidth
=
10
ButtonWidth
=
15
ButtonHeight
=
2
)
type
ButtonWidget
struct
{
...
...
@@ -17,23 +18,34 @@ type ButtonWidget struct {
handler
func
(
g
*
gocui
.
Gui
,
v
*
gocui
.
View
)
error
}
func
NewButtonWidget
(
name
string
,
x
,
y
int
,
label
string
,
handler
func
(
g
*
gocui
.
Gui
,
v
*
gocui
.
View
)
error
)
*
ButtonWidget
{
return
&
ButtonWidget
{
name
:
name
,
x
:
x
,
y
:
y
,
w
:
len
(
label
)
+
1
,
label
:
label
,
handler
:
handler
}
func
NewButtonWidget
(
g
*
gocui
.
Gui
,
name
string
,
x
,
y
,
w
int
,
label
string
,
handler
func
(
g
*
gocui
.
Gui
,
v
*
gocui
.
View
)
error
)
*
gocui
.
View
{
widget
:=
ButtonWidget
{
name
:
name
,
x
:
x
,
y
:
y
,
w
:
w
,
label
:
label
,
handler
:
handler
}
v
,
_
:=
widget
.
Layout
(
g
,
handler
)
return
v
}
func
(
w
*
ButtonWidget
)
Layout
(
g
*
gocui
.
Gui
)
error
{
v
,
err
:=
g
.
SetView
(
w
.
name
,
w
.
x
,
w
.
y
,
w
.
x
+
w
.
w
,
w
.
y
+
2
)
func
NewButtonWidgetAutoWidth
(
g
*
gocui
.
Gui
,
name
string
,
x
,
y
int
,
label
string
,
handler
func
(
g
*
gocui
.
Gui
,
v
*
gocui
.
View
)
error
)
*
gocui
.
View
{
widget
:=
NewButtonWidget
(
g
,
name
,
x
,
y
,
len
(
label
)
+
3
,
" "
+
label
+
" "
,
handler
)
return
widget
}
func
(
w
*
ButtonWidget
)
Layout
(
g
*
gocui
.
Gui
,
handler
func
(
g
*
gocui
.
Gui
,
v
*
gocui
.
View
)
error
)
(
*
gocui
.
View
,
error
)
{
v
,
err
:=
g
.
SetView
(
w
.
name
,
w
.
x
,
w
.
y
,
w
.
x
+
w
.
w
,
w
.
y
+
ButtonHeight
)
if
err
!=
nil
{
if
err
!=
gocui
.
ErrUnknownView
{
return
err
}
if
_
,
err
:=
g
.
SetCurrentView
(
w
.
name
);
err
!=
nil
{
return
err
return
nil
,
err
}
if
err
:=
g
.
SetKeybinding
(
w
.
name
,
gocui
.
KeyEnter
,
gocui
.
ModNone
,
w
.
handler
);
err
!=
nil
{
return
err
return
nil
,
err
}
if
err
:=
g
.
SetKeybinding
(
w
.
name
,
gocui
.
MouseLeft
,
gocui
.
ModNone
,
w
.
handler
);
err
!=
nil
{
return
nil
,
err
}
fmt
.
Fprint
(
v
,
w
.
label
)
}
return
nil
return
v
,
nil
}
src/ui/labelWidget.go
浏览文件 @
9930c042
...
...
@@ -6,7 +6,8 @@ import (
)
const
(
labelWidth
=
15
LabelWidth
=
15
LabelHeight
=
2
)
type
LabelWidget
struct
{
...
...
@@ -16,20 +17,22 @@ type LabelWidget struct {
label
string
}
func
NewLabelWidget
(
g
*
gocui
.
Gui
,
name
string
,
x
,
y
,
w
int
,
label
string
)
*
gocui
.
View
{
widget
:=
LabelWidget
{
name
:
name
,
x
:
x
,
y
:
y
,
w
:
w
,
label
:
label
}
func
NewLabelWidget
(
g
*
gocui
.
Gui
,
name
string
,
x
,
y
int
,
label
string
)
*
gocui
.
View
{
widget
:=
LabelWidget
{
name
:
name
,
x
:
x
,
y
:
y
,
w
:
LabelWidth
,
label
:
label
}
v
,
_
:=
widget
.
Layout
(
g
)
v
.
Frame
=
false
return
v
}
func
NewLabelWidgetAutoWidth
(
g
*
gocui
.
Gui
,
name
string
,
x
,
y
int
,
label
string
)
*
gocui
.
View
{
widget
:=
&
LabelWidget
{
name
:
name
,
x
:
x
,
y
:
y
,
w
:
len
(
label
)
+
1
,
label
:
label
}
widget
:=
LabelWidget
{
name
:
name
,
x
:
x
,
y
:
y
,
w
:
len
(
label
)
,
label
:
label
}
v
,
_
:=
widget
.
Layout
(
g
)
v
.
Frame
=
false
return
v
}
func
(
w
*
LabelWidget
)
Layout
(
g
*
gocui
.
Gui
)
(
*
gocui
.
View
,
error
)
{
v
,
err
:=
g
.
SetView
(
w
.
name
,
w
.
x
,
w
.
y
,
w
.
x
+
w
.
w
,
w
.
y
+
2
)
v
,
err
:=
g
.
SetView
(
w
.
name
,
w
.
x
,
w
.
y
,
w
.
x
+
w
.
w
,
w
.
y
+
LabelHeight
)
if
err
!=
nil
{
if
err
!=
gocui
.
ErrUnknownView
{
return
nil
,
err
...
...
src/ui/textWidget.go
浏览文件 @
9930c042
...
...
@@ -6,34 +6,37 @@ import (
)
const
(
inputNumbWidth
=
25
TextWidthFull
=
69
TextWidthHalf
=
25
TextHeight
=
2
)
type
TextWidget
struct
{
name
string
x
,
y
int
w
int
label
string
handler
func
(
g
*
gocui
.
Gui
,
v
*
gocui
.
View
)
error
name
string
x
,
y
int
w
int
text
string
}
func
NewTextWidget
(
name
string
,
x
,
y
int
,
label
string
,
handler
func
(
g
*
gocui
.
Gui
,
v
*
gocui
.
View
)
error
)
*
TextWidget
{
return
&
TextWidget
{
name
:
name
,
x
:
x
,
y
:
y
,
w
:
len
(
label
)
+
1
,
label
:
label
,
handler
:
handler
}
func
NewTextWidget
(
g
*
gocui
.
Gui
,
name
string
,
x
,
y
,
w
int
,
text
string
)
*
gocui
.
View
{
widget
:=
TextWidget
{
name
:
name
,
x
:
x
,
y
:
y
,
w
:
w
,
text
:
text
}
v
,
_
:=
widget
.
Layout
(
g
)
return
v
}
func
(
w
*
TextWidget
)
Layout
(
g
*
gocui
.
Gui
)
error
{
v
,
err
:=
g
.
SetView
(
w
.
name
,
w
.
x
,
w
.
y
,
w
.
x
+
w
.
w
,
w
.
y
+
2
)
func
(
w
*
TextWidget
)
Layout
(
g
*
gocui
.
Gui
)
(
*
gocui
.
View
,
error
)
{
v
,
err
:=
g
.
SetView
(
w
.
name
,
w
.
x
,
w
.
y
,
w
.
x
+
w
.
w
,
w
.
y
+
TextHeight
)
if
err
!=
nil
{
if
err
!=
gocui
.
ErrUnknownView
{
return
err
}
if
_
,
err
:=
g
.
SetCurrentView
(
w
.
name
);
err
!=
nil
{
return
err
}
if
err
:=
g
.
SetKeybinding
(
w
.
name
,
gocui
.
KeyEnter
,
gocui
.
ModNone
,
w
.
handler
);
err
!=
nil
{
return
err
return
nil
,
err
}
fmt
.
Fprint
(
v
,
w
.
label
)
v
.
Editable
=
true
v
.
Wrap
=
true
v
.
Clear
()
fmt
.
Fprint
(
v
,
w
.
text
)
}
return
nil
return
v
,
nil
}
src/ui/uiUtils.go
浏览文件 @
9930c042
package
ui
import
(
"github.com/jroimartin/gocui"
"strings"
)
const
(
Space
=
2
)
func
ShowHelp
(
g
*
gocui
.
Gui
,
v
*
gocui
.
View
)
error
{
help
,
_
:=
g
.
View
(
"help"
)
if
help
!=
nil
{
HideHelp
(
g
)
}
else
{
NewHelpWidget
(
g
)
}
return
nil
}
func
HideHelp
(
g
*
gocui
.
Gui
)
error
{
help
,
_
:=
g
.
View
(
"help"
)
if
help
!=
nil
{
if
err
:=
g
.
DeleteView
(
"help"
);
err
!=
nil
{
return
err
}
}
return
nil
}
func
ToggleInput
(
views
[]
string
)
func
(
g
*
gocui
.
Gui
,
v
*
gocui
.
View
)
error
{
return
func
(
g
*
gocui
.
Gui
,
v
*
gocui
.
View
)
error
{
nextView
:=
GetNextView
(
v
.
Name
(),
views
)
if
nextView
!=
""
{
_
,
err
:=
g
.
SetCurrentView
(
nextView
)
return
err
}
return
nil
}
}
func
GetNextView
(
name
string
,
views
[]
string
)
string
{
i
:=
0
found
:=
false
...
...
@@ -27,3 +68,7 @@ func GetNextView(name string, views []string) string {
return
""
}
func
Quit
(
g
*
gocui
.
Gui
,
v
*
gocui
.
View
)
error
{
return
gocui
.
ErrQuit
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录