package model type Tool int const ( ToolBrush Tool = iota ToolSelect ToolErase ToolFill ToolLine ToolRect ToolCircle ToolText ) func (t Tool) String() string { switch t { case ToolBrush: return "Brush" case ToolSelect: return "Select" case ToolErase: return "Erase" case ToolFill: return "Fill" case ToolLine: return "Line" case ToolRect: return "Rectangle" case ToolCircle: return "Circle" case ToolText: return "Text" } return "" } type Mode int const ( ModeNormal Mode = iota ModeDialog ModeLinePreview ModeRectPreview ModeCirclePreview ModeTextEdit ) type DialogType int const ( DialogNone DialogType = iota DialogSaveAs DialogOpenMap DialogResize DialogQuitConfirm DialogDeleteSubmapConfirm DialogRenameSymbol DialogRenameMap DialogFileSave DialogFileOpen ) func Clamp(v, lo, hi int) int { if v < lo { return lo } if v > hi { return hi } return v } func ContainsInt(s []int, v int) bool { for _, x := range s { if x == v { return true } } return false }