func (h *MyButtonHandler) HandleEvent(e gwu.Event) { if _, isButton := e.Src().(gwu.Button); isButton { ioutil.WriteFile( fmt.Sprintf("wikiPages/%s", fileName), []byte(wikiText), os.FileMode(os.O_WRONLY|os.O_CREATE|os.O_TRUNC|0777)) } }
func (h *MyButtonHandler) HandleEvent(e gwu.Event) { if b, isButton := e.Src().(gwu.Button); isButton { b.SetText(b.Text() + h.text) h.counter++ b.SetToolTip("You've clicked " + strconv.Itoa(h.counter) + " times!") e.MarkDirty(b) } }
func (h *NewPageHandler) HandleEvent(e gwu.Event) { if _, isButton := e.Src().(gwu.Button); isButton { fmt.Printf("NewPage: %s\n", newPageBox.Text()) ioutil.WriteFile( fmt.Sprintf("wikiPages/%s", newPageBox.Text()), []byte{}, os.FileMode(os.O_WRONLY|os.O_CREATE|os.O_EXCL|0777)) } }
func (h *MyButtonHandler) HandleEvent(e gwu.Event) { // Check if event source is a Button, just to be sure... // We add this handler to a button only, so this'll be always false. if b, isButton := e.Src().(gwu.Button); isButton { b.SetText(b.Text() + h.text) h.counter++ b.SetToolTip("You've clicked " + strconv.Itoa(h.counter) + " times!") e.MarkDirty(b) } }
func (h *MyButtonHandler2) HandleEvent(e gwu.Event) { if _, isButton := e.Src().(gwu.Button); isButton { fmt.Println("Loading... ", h.text) fileName = h.text LoadFile(h.text) tb.SetText(wikiText) html.SetHtml(fmt.Sprintf("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM%v", string(blackfriday.MarkdownCommon([]byte(tb.Text()))))) e.MarkDirty(tb) e.MarkDirty(html) } }
func (h *GreenHandler) HandleEvent(e gwu.Event) { var state bool src := e.Src() switch c := src.(type) { case gwu.CheckBox: state = c.State() case gwu.RadioButton: state = c.State() } if state { src.Style().SetBackground(gwu.CLR_GREEN) } else { src.Style().SetBackground("") } e.MarkDirty(src) }
func (zz ExpanderHandler) HandleEvent(e gwu.Event) { switch t := e.Src().(type) { case gwu.Expander: dir, _ := expanderDir[t] //fmt.Println("Dir=" + dir) files, _ := ioutil.ReadDir(dir) var p gwu.Panel var table gwu.Table p = nil dirList := make([]gwu.Comp, 0, 0) fileLabelList := make([]gwu.Comp, 0, 0) fileTimeList := make([]gwu.Comp, 0, 0) fileSizeList := make([]gwu.Comp, 0, 0) for _, f := range files { if p == nil { p = gwu.NewPanel() t.SetContent(p) table = gwu.NewTable() table.SetCellPadding(5) p.Add(table) } if f.IsDir() { // owned by root // only works on linux newExpander := makeExpander(f.Name()) newExpander.SetToolTip("DIR - Click to view contents") newExpander.Style().SetColor("blue") if dir == "/" { expanderDir[newExpander] = dir + f.Name() } else { expanderDir[newExpander] = dir + "/" + f.Name() } newExpander.AddEHandler(handler, gwu.ETYPE_STATE_CHANGE) dirList = append(dirList, newExpander) } else { fileLabel := gwu.NewLabel(f.Name()) fileLabel.Style().SetPaddingLeft("20") fileLabel.SetToolTip("FILE") fileLabel.AddEHandler(foobar, gwu.ETYPE_MOUSE_DOWN) fileLabelList = append(fileLabelList, fileLabel) fileTimeLabel := gwu.NewLabel(f.ModTime().Format(layout)) fileTimeList = append(fileTimeList, fileTimeLabel) fileSizeLabel := gwu.NewLabel(strconv.FormatInt(f.Size(), 10) + "k") fileSizeList = append(fileSizeList, fileSizeLabel) } } row := 0 for _, dir := range dirList { table.Add(dir, row, 0) row = row + 1 } for i, _ := range fileLabelList { table.Add(fileLabelList[i], row, 0) rfmt := table.CellFmt(row, 0) rfmt.SetHAlign(gwu.HA_LEFT) rfmt.SetVAlign(gwu.VA_TOP) table.Add(fileTimeList[i], row, 1) rfmt = table.CellFmt(row, 1) rfmt.SetHAlign(gwu.HA_LEFT) rfmt.SetVAlign(gwu.VA_TOP) table.Add(fileSizeList[i], row, 2) rfmt = table.CellFmt(row, 2) rfmt.SetHAlign(gwu.HA_RIGHT) rfmt.SetVAlign(gwu.VA_TOP) row = row + 1 } default: // t is some other type that we didn't name. } }