func control() { // scr.SwitchFontsize(font.Normal) scr.Write(" ", 1, 0) scr.WriteNat(figures.Num(), 1, 0) scr.WriteNat(figures.NumPred(func(a Any) bool { return a.(*fig2.Imp).Marked() }), 1, 5) }
func (f *Imp) Select() { // f.Clr() Acolour := f.colour Hcolour := Acolour col.Contrast(&Hcolour) scr.SwitchFontsize(font.Normal) n := uint(Rectangle) Z, S := scr.MousePos() sel.Select1(name, NSorts, BB, &n, Z, S, Acolour, Hcolour) if n < NSorts { f.sort = Sort(n) } }
func init() { // v.Want(13, 1, 19) Text[Fußweg] = "F" Farbe[Fußweg] = col.Colour3(170, 170, 170) Text[U1] = "U1" Farbe[U1] = col.Colour3(83, 177, 71) Text[U2] = "U2" Farbe[U2] = col.Colour3(241, 89, 35) Text[U3] = "U3" Farbe[U3] = col.Colour3(22, 166, 150) Text[U4] = "U4" Farbe[U4] = col.Colour3(255, 212, 2) Text[U5] = "U5" Farbe[U5] = col.Colour3(131, 90, 67) Text[U55] = "U55" Farbe[U55] = col.Colour3(131, 90, 67) Text[U6] = "U6" Farbe[U6] = col.Colour3(129, 114, 173) Text[U7] = "U7" Farbe[U7] = col.Colour3(6, 158, 211) Text[U8] = "U8" Farbe[U8] = col.Colour3(0, 97, 159) Text[U9] = "U9" Farbe[U9] = col.Colour3(234, 133, 28) Text[S1] = "S1" Farbe[S1] = col.Colour3(229, 76, 255) // ab hier alte Farben Text[S2] = "S2" Farbe[S2] = col.Colour3(0, 179, 0) Text[S25] = "S25" Farbe[S25] = Farbe[S2] Text[S3] = "S3" Farbe[S3] = col.Colour3(0, 115, 242) Text[S41] = "S41" Farbe[S41] = col.Colour3(54, 38, 208) Text[S42] = "S42" Farbe[S42] = col.Colour3(91, 76, 208) Text[S4] = "S4" Farbe[S4] = Farbe[S41] Text[S45] = "S45" Farbe[S45] = col.Colour3(92, 128, 38) Text[S46] = "S46" Farbe[S47] = Farbe[S45] Text[S47] = "S47" Farbe[S47] = Farbe[S45] Text[S5] = "S5" Farbe[S5] = col.Colour3(254, 89, 0) Text[S7] = "S7" Farbe[S7] = col.Colour3(102, 88, 243) Text[S75] = "S75" Farbe[S75] = Farbe[S7] Text[S8] = "S8" Farbe[S8] = col.Colour3(75, 243, 0) Text[S85] = "S85" Farbe[S85] = Farbe[S8] Text[S9] = "S9" Farbe[S9] = col.Colour3(127, 0, 77) /* if true { // zu Testzwecken T, M, sch:= env.Par (1); scr.Mode (), false if len (T) == 1 { sch = true switch T[0] { case 'v': M = VGA case 'x': M = XGA case 'w': M = WXGA case 's': M = SXGA case 'u': M = UXGA default: sch = false } } if sch && scr.Switchable (M) { scr.Switch (M) } } */ M := scr.MaxMode() scr.Switch(M) // f, l, b:= v.Colours(); t:= ""; errh.MurusLicense ("sunetz", "19. Januar 2013", "Christian Maurer", f, l, b, &t) if M <= scr.XGA { scr.SwitchFontsize(font.Tiny) } else { scr.SwitchFontsize(font.Small) } col.ScreenF, col.ScreenB = col.Black, col.LightWhite scr.Cls() }
func names() (string, string) { // scr.SwitchFontsize(font.Normal) return sel.Names("Bild:", "epn", 32, 0, 0, paperColour, actColour) }
func main() { // h := [...]string{ // 0 1 2 3 4 5 6 7 // 012345678901234567890123456789012345678901234567890123456789012345678901234567 " Art (Farbe) für neue Figur auswählen: (Umschalt- +) Leer- oder Rolltaste ", // " Schriftgröße auswählen: Alt- + Leer- oder Rolltaste ", " neue Figur erzeugen: linke Maustaste, ", " Streckenzüge, Polygone und Kurven ", " mit rechter Maustaste abschließen, ", " Texteingabe mit Eingabetaste beenden ", " Figur ändern: Alt- + linke Maustaste, die 'Punkte' ", " mit rechter Maustaste verschieben, ", " mit linker Maustaste abschließen ", " Figur färben: Umschalt-, Alt- + linke Maustaste ", " (alle) Figur(en) markieren: (Umschalt- +) F5-Taste oder ", " (Alt- +) mittlere Maustaste ", " (alle) Figur(en) entmarkieren: (Umschalt- +) F6-Taste oder ", " Umschalt- + (Alt- +) mittl. Maustaste", " markierte Figur(en) kopieren: Umschalt- + linke Maustaste ", " (markierte) Figur(en) verschieben: (Umschalt- +) rechte Maustaste ", " (markierte) Figur(en) löschen: (Umschalt- +) Entfernungtaste oder ", " (Umschalt-,) Alt- + rechte Maustaste ", " letzte gelöschte Figur zurückholen: Rücktaste (<-) ", " letzte erzeugte Figur löschen: Umschalt- + Rücktaste (<-) ", "letzte gelöschte mark. Fig. zurückholen: Alt- + Rücktaste (<-) ", "Hintergrundfarbe umschalten (auswählen): (Umschalt- +) F4-Taste ", " Figuren aus eBoard holen und markieren: F7-Taste ", " markierte Figuren in eBoard ablegen: F8-Taste ", " eBoard ausdrucken: Drucktaste ", " ePen beenden: Abbruchtaste (Esc) ", " ", " Steuerungstaste (Strg) wirkt wie Umschalttaste "} help := make([]string, len(h)) for i := 0; i < len(h); i++ { str.Set(&help[i], h[i]) } scr.Switch(scr.SXGA) actColour = col.ScreenF paperColour = col.ScreenB // fo = scr.Normal figure = fig2.New() newFigure := fig2.New() newFigure.SetColour(actColour) figures, copiedFigures, image = seq.New(newFigure), seq.New(newFigure), seq.New(newFigure) cuttedFigures, depot = seq.New(newFigure), seq.New(newFigure) stack = stk.New(newFigure) name, filename := names() if filename == "" { return } origname := filename load(figures, filename) // extract (paperColour) write() var x0, y0 int // kbd.Push var movable bool var Schub int loop: for { scr.MouseCursor(true) // control(); write() c, cmd, d := kbd.Read() if cmd == kbd.None { switch c { case ' ': cmd = kbd.Roll } } xm, ym := scr.MousePosGr() switch d { case 0: Schub = 8 case 1: Schub = int(scr.NY() / 40) default: Schub = int(scr.NX() / 8) } switch cmd { case kbd.Esc: break loop case kbd.Enter: // actualize ? case kbd.Back: switch d { case 0: ins(top()) case 1: delLast() default: getMarked() } case kbd.Left: kick(spc.Right, Schub) case kbd.Right: Schub = -Schub kick(spc.Right, Schub) case kbd.Up: kick(spc.Top, Schub) case kbd.Down: Schub = -Schub kick(spc.Top, Schub) case kbd.Del: switch d { case 0: if deleted(xm, ym) { push() } default: delMarked() } case kbd.Tab: // free for use case kbd.Help: scr.SwitchFontsize(font.Normal) errh.WriteHelp(help) case kbd.LookFor: // wird für die Auswahl des eBoards verwendet - NEIN, sondern: load(figures, filename) write() case kbd.Act: // inject (paperColour) store(figures, filename) case kbd.Cfg: paperColour = sel.Colour() bgColour(paperColour) case kbd.Mark: switch d { case 0: mark(xm, ym, true) case 1: markAll(true) default: showMarked() } case kbd.Demark: switch d { case 0: mark(xm, ym, false) case 1: markAll(false) default: showMarked() } case kbd.Deposit: writeMarked() case kbd.Paste: readMarked() case kbd.PrintScr: print(name) case kbd.Roll: switch d { case 0: newFigure.Select() case 1: actColour = sel.Colour() newFigure.SetColour(actColour) case 2: scr.SwitchFontsize(font.Normal) // fo = sel.Size (actColour) // newFigure.SetFont (fo) } case kbd.Here: switch d { case 0: generate(newFigure) case 1: copyMarked() case 2: change(xm, ym) case 3: setColours(xm, ym, actColour) } case kbd.There: movable = underMouse(uint(xm), uint(ym)) && d <= 1 x0, y0 = xm, ym // kbd.Push switch d { case 0: if movable { cut(xm, ym) } case 1: if movable { cutMarked() } case 2: if deleted(xm, ym) { push() } default: delMarked() write() } case kbd.Push: if movable { switch d { case 0: move(xm-x0, ym-y0) case 1: moveMarked(xm-x0, ym-y0) } x0, y0 = scr.MousePosGr() } case kbd.Thither: if movable { switch d { case 0: join() case 1: joinMarked() } } case kbd.This: switch d { case 0: mark(xm, ym, true) case 1: mark(xm, ym, false) case 2: markAll(true) case 3: markAll(false) } invMarked() case kbd.Thus: invMarked() } } markAll(false) _, filename = names() if filename == "" { filename = origname } // inject (paperColour) store(figures, filename) // -> Terminieren ker.Terminate() }