Example #1
0
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)
}
Example #2
0
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)
	}
}
Example #3
0
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()
}
Example #4
0
func names() (string, string) {
	//
	scr.SwitchFontsize(font.Normal)
	return sel.Names("Bild:", "epn", 32, 0, 0, paperColour, actColour)
}
Example #5
0
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()
}