
FUNCTION settext() {
	ctrl(abs(enum(trashcan)) " trashcan dateien")
	}

FUNCTION is_empty() {
	inform("Trashcan",
	       "Der Trashcan enthlt keine Dateien");
	}


/drop "trashcan"/ {
	for (i=0; i<DROPC; i++) {
		x = tmpfile("", "tc");
		ctrl(i+1 " von " DROPC ": " DROPV[i])

		movefile(DROPV[i], x);
		trashcan[DROPV[i]] = x;
		}

	settext();
	}


/menu "&Zurckholen ..."/ {
	while (1) {
		if ((ii = enum(trashcan)) == "") {
			is_empty();
			break;
			}

		x = select(250, 174, "Trashcan Dateien", "", " [abbrechen]\t" ii, "")
		if (x == "\z"  ||  x == " [abbrechen]")
			break;

		y = trashcan[x];
		movefile(y, x);
		delete(trashcan, x);
		}

	ii = "";
	settext();
	}


/menu "&Alle zurckholen"/ {
	delete(ii);
	if ((ii = enum(trashcan)) == "") {
		is_empty()
		}
	else {
		n = split(ii, ii, "\t")
		for (i=0; i<n; i++) {
			x = ii[i];
			y = trashcan[x];

			ctrl(x);
			movefile(y, x);
			delete(trashcan, x);
			}
		}

	ii = ""
	settext();
	}


/menu "Trashcan &leeren"/ {
	delete(ii);
	if ((ii = enum(trashcan)) == "") {
		is_empty();
		}
	else {
		n = split(ii, ii, "\t");
		for (i=0; i<n; i++) {
			x = ii[i];
			y = trashcan[x];
			ctrl(sprintf ("lsche %s (%s)", y, x))
			removefile(y);
			}

		delete(trashcan);
		settext();
		inform("Trashcan", "Es wurden " n " dateien gelscht");
		}

	ii = "";
	}


/menu "Variablen ..."/ {
	ctrl(5);
	exec(*("sh.cfg!config")["editor"] " " varfile, 1);
	}


/wm queryopen/ {
	queropen = 0;
	}


BEGIN {
	DROPmode = "trashcan";
	ctrl(1, 2, 4, 20);
	settext();
	ownsysmenu = 1;
	}
