本文整理汇总了Golang中github.com/gizak/termui.TermWidth函数的典型用法代码示例。如果您正苦于以下问题:Golang TermWidth函数的具体用法?Golang TermWidth怎么用?Golang TermWidth使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了TermWidth函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: doLiveGraph
//doLiveGraph builds a graph in the terminal window that
//updates every graphUpdate seconds
//It will build up to maxGraphs graphs with one time-series
//per graph
func doLiveGraph(res *wavefront.QueryResponse, query *wavefront.Querying, period int64) {
err := ui.Init()
if err != nil {
log.Fatal(err)
}
defer ui.Close()
if maxGraphs > len(res.TimeSeries) {
maxGraphs = len(res.TimeSeries)
}
var wDivisor, hDivisor int
switch maxGraphs {
case 1:
wDivisor = 1
hDivisor = 1
case 2:
wDivisor = 2
hDivisor = 1
case 3, 4:
wDivisor = 2
hDivisor = 2
}
height := ui.TermHeight() / hDivisor
width := ui.TermWidth() / wDivisor
xVals, yVals := calculateCoords(maxGraphs, ui.TermWidth()/wDivisor, ui.TermHeight()/hDivisor)
graphs := buildGraphs(res, height, width, xVals, yVals)
ui.Render(graphs...)
ui.Handle("/sys/kbd/q", func(ui.Event) {
// press q to quit
ui.StopLoop()
})
ui.Handle("/sys/kbd/C-c", func(ui.Event) {
// handle Ctrl + c combination
ui.StopLoop()
})
ui.Handle("/timer/1s", func(e ui.Event) {
query.SetEndTime(time.Now())
query.SetStartTime(period)
res, err := query.Execute()
if err != nil {
log.Fatal(err)
}
graphs := buildGraphs(res, height, width, xVals, yVals)
ui.Render(graphs...)
})
ui.Loop()
}
开发者ID:spaceapegames,项目名称:go-wavefront,代码行数:59,代码来源:query.go
示例2: Create
func (p *TicketShowPage) Create() {
log.Debugf("TicketShowPage.Create(): self: %s (%p)", p.Id(), p)
log.Debugf("TicketShowPage.Create(): currentPage: %s (%p)", currentPage.Id(), currentPage)
p.opts = getJiraOpts()
if p.TicketId == "" {
p.TicketId = ticketListPage.GetSelectedTicketId()
}
if p.MaxWrapWidth == 0 {
if m := p.opts["max_wrap"]; m != nil {
p.MaxWrapWidth = uint(m.(int64))
} else {
p.MaxWrapWidth = defaultMaxWrapWidth
}
}
ui.Clear()
ls := ui.NewList()
if p.statusBar == nil {
p.statusBar = new(StatusBar)
}
if p.commandBar == nil {
p.commandBar = commandBar
}
p.uiList = ls
if p.Template == "" {
if templateOpt := p.opts["template"]; templateOpt == nil {
p.Template = "jira_ui_view"
} else {
p.Template = templateOpt.(string)
}
}
innerWidth := uint(ui.TermWidth()) - 3
if innerWidth < p.MaxWrapWidth {
p.WrapWidth = innerWidth
} else {
p.WrapWidth = p.MaxWrapWidth
}
if p.apiBody == nil {
p.apiBody, _ = FetchJiraTicket(p.TicketId)
}
p.cachedResults = WrapText(JiraTicketAsStrings(p.apiBody, p.Template), p.WrapWidth)
p.displayLines = make([]string, len(p.cachedResults))
if p.selectedLine >= len(p.cachedResults) {
p.selectedLine = len(p.cachedResults) - 1
}
ls.ItemFgColor = ui.ColorYellow
ls.Height = ui.TermHeight() - 2
ls.Width = ui.TermWidth()
ls.Border = true
ls.BorderLabel = fmt.Sprintf("%s %s", p.TicketId, p.ticketTrailAsString())
ls.Y = 0
p.statusBar.Create()
p.commandBar.Create()
p.Update()
}
开发者ID:Feriority,项目名称:go-jira-ui,代码行数:54,代码来源:ticket_show_page.go
示例3: Create
func (p *LabelListPage) Create() {
ui.Clear()
ls := ui.NewList()
p.uiList = ls
if p.statusBar == nil {
p.statusBar = new(StatusBar)
}
if p.commandBar == nil {
p.commandBar = commandBar
}
queryName := p.ActiveQuery.Name
queryJQL := p.ActiveQuery.JQL
p.labelCounts = countLabelsFromQuery(queryJQL)
p.cachedResults = p.labelsAsSortedList()
p.isPopulated = true
p.displayLines = make([]string, len(p.cachedResults))
ls.ItemFgColor = ui.ColorYellow
ls.BorderLabel = fmt.Sprintf("Label view -- %s: %s", queryName, queryJQL)
ls.Height = ui.TermHeight() - 2
ls.Width = ui.TermWidth()
ls.Y = 0
p.statusBar.Create()
p.commandBar.Create()
p.Update()
}
开发者ID:Feriority,项目名称:go-jira-ui,代码行数:25,代码来源:label_list_page.go
示例4: resize
func (ed *Editor) resize() {
termui.Body.Width = termui.TermWidth()
ed.applets.Height = termui.TermHeight() - 2 + 1 // offset 1 for border
ed.desc.Y = ed.locked.Y + ed.locked.Height - 1 // offset 1 for border
ed.desc.Height = termui.TermHeight() - ed.desc.Y - 2
ed.title.Y = termui.TermHeight() - 2
ed.title.Width = termui.TermWidth() + 1 // offset 1 for border
ed.appinfo.Width = termui.TermWidth() - ed.appinfo.X + 1 // offset 1 for border
ed.locked.Width = termui.TermWidth() - ed.applets.Width + 1 // offset 1 for border
ed.desc.Width = termui.TermWidth() - ed.applets.Width + 1 // offset 1 for border
ed.desc.WrapLength = ed.desc.Width
termui.Render(ed.applets, ed.fields, ed.appinfo, ed.locked, ed.desc, ed.title)
}
开发者ID:sqp,项目名称:godock,代码行数:16,代码来源:editui.go
示例5: init
func init() {
err := termui.Init()
if err != nil {
panic(err)
}
termui.UseTheme("default")
ui = NewUi()
refreshTicker := time.NewTicker(time.Millisecond * 50)
evt := termui.EventCh()
ui.refresh()
go func() {
for {
select {
case e := <-evt:
if e.Type == termui.EventKey && e.Ch == 'q' {
os.Exit(1)
}
if e.Type == termui.EventResize {
ui.gridWidth = termui.TermWidth()
ui.refresh()
}
case <-refreshTicker.C:
ui.refresh()
}
}
}()
}
开发者ID:bigwhoop,项目名称:podcastd,代码行数:32,代码来源:ui.go
示例6: Create
func (p *TicketListPage) Create() {
log.Debugf("TicketListPage.Create(): self: %s (%p)", p.Id(), p)
log.Debugf("TicketListPage.Create(): currentPage: %s (%p)", currentPage.Id(), currentPage)
ui.Clear()
ls := ui.NewList()
p.uiList = ls
if p.statusBar == nil {
p.statusBar = new(StatusBar)
}
if p.commandBar == nil {
p.commandBar = commandBar
}
query := p.ActiveQuery.JQL
if sort := p.ActiveSort.JQL; sort != "" {
re := regexp.MustCompile(`(?i)\s+ORDER\s+BY.+$`)
query = re.ReplaceAllString(query, ``) + " " + sort
}
if len(p.cachedResults) == 0 {
p.cachedResults = JiraQueryAsStrings(query, p.ActiveQuery.Template)
}
if p.selectedLine >= len(p.cachedResults) {
p.selectedLine = len(p.cachedResults) - 1
}
p.displayLines = make([]string, len(p.cachedResults))
ls.ItemFgColor = ui.ColorYellow
ls.BorderLabel = fmt.Sprintf("%s: %s", p.ActiveQuery.Name, p.ActiveQuery.JQL)
ls.Height = ui.TermHeight() - 2
ls.Width = ui.TermWidth()
ls.Y = 0
p.statusBar.Create()
p.commandBar.Create()
p.Update()
}
开发者ID:Feriority,项目名称:go-jira-ui,代码行数:33,代码来源:ticket_list_page.go
示例7: NewUi
func NewUi() Ui {
headerWidget := termui.NewPar(fmt.Sprintf("podcastd v%s\nCopyright 2015 Philippe Gerber\nhttps://github.com/bigwhoop/podcastd", VERSION))
headerWidget.Height = 5
headerWidget.HasBorder = false
headerWidget.PaddingTop = 1
headerWidget.PaddingBottom = 1
headerWidget.PaddingLeft = 1
infoWidget := termui.NewPar("")
infoWidget.HasBorder = false
infoWidget.Text = fmt.Sprintf("Press 'q' to quit")
feedsWidget := termui.NewList()
feedsWidget.Border.Label = "Feeds"
return Ui{
termui.TermWidth(),
headerWidget,
infoWidget,
feedsWidget,
make(map[string]bool, 0),
make([]*termui.Gauge, 0),
make(map[string]curl.ProgressStatus, 0),
}
}
开发者ID:bigwhoop,项目名称:podcastd,代码行数:25,代码来源:ui.go
示例8: readMessage
func readMessage(message *imap.MessageInfo) {
set := new(imap.SeqSet)
set.AddNum(message.Seq)
cmd, err := imap.Wait(c.Fetch(set, BODY_PART_NAME))
panicMaybe(err)
reader, err := messageReader(cmd.Data[0].MessageInfo())
panicMaybe(err)
scanner := bufio.NewScanner(reader)
var lines []string
for scanner.Scan() {
lines = append(lines, scanner.Text())
}
messageBodyStr := strings.Join(lines[:min(len(lines), ui.TermHeight()-2)], "\n")
if len(messageBodyStr) <= 0 {
LOG.Printf("Message body was empty or could not be retrieved: +%v\n", err)
return
}
msgBox := ui.NewPar(messageBodyStr)
msgBox.Border.Label = "Reading Message"
msgBox.Height = ui.TermHeight()
msgBox.Width = ui.TermWidth()
msgBox.Y = 0
ui.Render(msgBox)
topLineIndex := 0
redraw := make(chan bool)
for {
select {
case e := <-ui.EventCh():
switch e.Key {
case ui.KeyArrowDown:
topLineIndex = max(0, min(
len(lines)-msgBox.Height/2,
topLineIndex+1))
go func() { redraw <- true }()
case ui.KeyArrowUp:
topLineIndex = max(0, topLineIndex-1)
go func() { redraw <- true }()
case ui.KeyEsc:
// back to "list messages"
return
}
case <-redraw:
messageBodyStr = strings.Join(lines[topLineIndex+1:], "\n")
msgBox.Text = messageBodyStr
ui.Render(msgBox)
}
}
}
开发者ID:llvtt,项目名称:gomail,代码行数:55,代码来源:readmail.go
示例9: Create
func (p *CommandBar) Create() {
ls := ui.NewList()
p.uiList = ls
ls.ItemFgColor = ui.ColorGreen
ls.Border = false
ls.Height = 1
ls.Width = ui.TermWidth()
ls.X = 0
ls.Y = ui.TermHeight() - 1
p.Update()
}
开发者ID:Feriority,项目名称:go-jira-ui,代码行数:11,代码来源:command_bar.go
示例10: adjustDimensions
func adjustDimensions() {
termui.Body.Width = termui.TermWidth()
height := termui.TermHeight()
parMap["moveHistory"].Height = height - 23 - 4
parMap["output"].Height = height - 23
if height < 31 {
parMap["board"].Height = height - 8
parMap["moveHistory"].Height = 2
parMap["output"].Height = 6
}
}
开发者ID:marktai,项目名称:T9-Terminal,代码行数:11,代码来源:ui.go
示例11: sparkLinesEventLoop
func sparkLinesEventLoop() {
ui.Handle("/sys/kbd/q", func(ui.Event) {
ui.StopLoop()
})
ui.Handle("/sys/wnd/resize", func(e ui.Event) {
ui.Body.Width = ui.TermWidth()
ui.Body.Align()
ui.Render(ui.Body)
})
ui.Loop() // blocking call
}
开发者ID:catalyzeio,项目名称:cli,代码行数:12,代码来源:spark.go
示例12: main
func main() {
flag.Parse()
if err := ui.Init(); err != nil {
panic(err)
}
defer ui.Close()
draw()
ui.Handle("/sys/kbd", func(e ui.Event) {
ev := e.Data.(ui.EvtKbd)
switch ev.KeyStr {
case ":":
promptMsg = ":"
case "C-8":
if l := len(promptMsg); l != 0 {
promptMsg = promptMsg[:l-1]
}
case "<enter>":
handleInput()
promptMsg = ""
case "<left>":
case "<up>":
if reportPage > 0 {
reportPage--
}
case "<right>":
case "<down>":
reportPage++
case "<escape>":
promptMsg = ""
default:
// TODO: filter irrelevant keys such as up, down, etc.
promptMsg += ev.KeyStr
}
refresh()
})
ui.Handle("/sys/kbd/C-c", func(ui.Event) {
ui.StopLoop()
})
ui.Handle("/timer/1s", func(ui.Event) {
loadProfile(false)
loadStats()
refresh()
})
ui.Handle("/sys/wnd/resize", func(e ui.Event) {
ui.Body.Width = ui.TermWidth()
refresh()
})
ui.Body.Align()
ui.Render(ui.Body)
ui.Loop()
}
开发者ID:x0ry,项目名称:gom,代码行数:52,代码来源:gom.go
示例13: Create
func (p *StatusBar) Create() {
ls := ui.NewList()
p.uiList = ls
ls.ItemFgColor = ui.ColorWhite
ls.ItemBgColor = ui.ColorRed
ls.Bg = ui.ColorRed
ls.Border = false
ls.Height = 1
ls.Width = ui.TermWidth()
ls.X = 0
ls.Y = ui.TermHeight() - 2
p.Update()
}
开发者ID:Feriority,项目名称:go-jira-ui,代码行数:13,代码来源:status_bar.go
示例14: Create
func (p *BaseListPage) Create() {
ui.Clear()
ls := ui.NewList()
p.uiList = ls
p.cachedResults = make([]string, 0)
p.displayLines = make([]string, len(p.cachedResults))
ls.ItemFgColor = ui.ColorYellow
ls.BorderLabel = "Updating, please wait"
ls.Height = ui.TermHeight()
ls.Width = ui.TermWidth()
ls.Y = 0
p.Update()
}
开发者ID:Feriority,项目名称:go-jira-ui,代码行数:13,代码来源:base_list_page.go
示例15: Create
func (p *BaseInputBox) Create() {
ls := ui.NewList()
var strs []string
p.uiList = ls
ls.Items = strs
ls.ItemFgColor = ui.ColorGreen
ls.BorderFg = ui.ColorRed
ls.Height = 1
ls.Width = 30
ls.Overflow = "wrap"
ls.X = ui.TermWidth()/2 - ls.Width/2
ls.Y = ui.TermHeight()/2 - ls.Height/2
p.Update()
}
开发者ID:Feriority,项目名称:go-jira-ui,代码行数:14,代码来源:base_input_box.go
示例16: Create
func (p *PasswordInputBox) Create() {
ls := ui.NewList()
p.uiList = ls
var strs []string
ls.Items = strs
ls.ItemFgColor = ui.ColorGreen
ls.BorderLabel = "Enter Password:"
ls.BorderFg = ui.ColorRed
ls.Height = 3
ls.Width = 30
ls.X = ui.TermWidth()/2 - ls.Width/2
ls.Y = ui.TermHeight()/2 - ls.Height/2
p.Update()
}
开发者ID:Feriority,项目名称:go-jira-ui,代码行数:14,代码来源:password_input_box.go
示例17: showSubreddit
func showSubreddit(subredditName string) error {
r := geddit.NewSession("r by /u/bnadland")
submissions, err := r.SubredditSubmissions(subredditName, geddit.HotSubmissions, geddit.ListingOptions{})
if err != nil {
return err
}
isActive := true
cursor := 3
for isActive {
entries := []string{}
for i, submission := range submissions {
entries = append(entries, fmt.Sprintf("%s %s", isActiveCursor(cursor, i), submission.Title))
}
ls := termui.NewList()
ls.Items = entries
ls.ItemFgColor = termui.ColorDefault
ls.Border.Label = fmt.Sprintf("Subreddit: %s", subredditName)
ls.Height = termui.TermHeight()
ls.Width = termui.TermWidth()
ls.Y = 0
termui.Render(ls)
event := <-termui.EventCh()
if event.Type == termui.EventKey {
switch event.Key {
case termui.KeyArrowLeft:
isActive = false
case termui.KeyArrowDown:
cursor = cursor + 1
if cursor > len(submissions) {
cursor = len(submissions)
}
case termui.KeyArrowUp:
cursor = cursor - 1
if cursor < 0 {
cursor = 0
}
}
}
}
return nil
}
开发者ID:bnadland,项目名称:r,代码行数:46,代码来源:main.go
示例18: main
func main() {
if len(os.Args) < 2 {
log.Fatal("Usage: ", os.Args[0], " <sparkyfish server hostname/IP>[:port]")
}
dest := os.Args[1]
i := last(dest, ':')
if i < 0 {
dest = fmt.Sprint(dest, ":7121")
}
// Initialize our screen
err := termui.Init()
if err != nil {
panic(err)
}
if termui.TermWidth() < 60 || termui.TermHeight() < 28 {
fmt.Println("sparkyfish needs a terminal window at least 60x28 to run.")
os.Exit(1)
}
defer termui.Close()
// 'q' quits the program
termui.Handle("/sys/kbd/q", func(termui.Event) {
termui.StopLoop()
})
// 'Q' also works
termui.Handle("/sys/kbd/Q", func(termui.Event) {
termui.StopLoop()
})
sc := newsparkyClient()
sc.serverHostname = dest
sc.prepareChannels()
sc.wr = newwidgetRenderer()
// Begin our tests
go sc.runTestSequence()
termui.Loop()
}
开发者ID:mephux,项目名称:sparkyfish,代码行数:45,代码来源:sparkyfish-cli.go
示例19: Create
func (p *SortOrderPage) Create() {
ls := ui.NewList()
p.uiList = ls
p.selectedLine = 0
p.firstDisplayLine = 0
if len(p.cachedResults) == 0 {
p.cachedResults = getSorts()
p.displayLines = make([]string, len(p.cachedResults))
}
ls.ItemFgColor = ui.ColorGreen
ls.BorderLabel = "Sort By..."
ls.BorderFg = ui.ColorRed
ls.Height = 10
ls.Width = 50
ls.X = ui.TermWidth()/2 - ls.Width/2
ls.Y = ui.TermHeight()/2 - ls.Height/2
p.Update()
}
开发者ID:Feriority,项目名称:go-jira-ui,代码行数:18,代码来源:sort_order_page.go
示例20: maintainSparkLines
func maintainSparkLines(redraw chan bool, quit chan bool) {
evt := ui.EventCh()
for {
select {
case e := <-evt:
if e.Type == ui.EventKey && e.Ch == 'q' {
quit <- true
return
}
if e.Type == ui.EventResize {
ui.Body.Width = ui.TermWidth()
ui.Body.Align()
go func() { redraw <- true }()
}
case <-redraw:
ui.Render(ui.Body)
}
}
}
开发者ID:jkoelndorfer,项目名称:cli,代码行数:19,代码来源:metrics.go
注:本文中的github.com/gizak/termui.TermWidth函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论