Hallo allerseits,
ich möchte gerne mit Perl/Tk bei einer Fensteranwendung ein zusätzliches Fenster als Kontextmenu verwenden (Rahmen entfernen via overrideredirect, per attribute 'topmost' immer über Hauptfenster, usw.).
Leider kann man das (Sub-)Fenster bei aktivem Fokus mit Alt+F4 abschiessen.
Die Anwendung merkt aber nicht dass das zusätzliche Fenster weg ist.
Ein kurzes Beispiel:
Code:
use strict;
use warnings;
use Tk;
my $mw = MainWindow->new;
my $tpl='';
$mw->after(1000,\&mkToplevel);
$mw->repeat(2000,\&ckToplevel);
MainLoop;
sub mkToplevel
{
$tpl = $mw->Toplevel();
$tpl->attributes(-topmost=>1);
}
sub ckToplevel
{# hier möchte ich nun irgendwie feststellen, ob das Toplevel noch lebt
#leider kein Hinweis in der Zuordnung
print $tpl,"\n";
#Fehler wenn Toplevel weg ist
$tpl->configure(-bg=>('green','red','blue')[rand 3]);
}
Einer Hauptanwendung könnte ich ja mit END{ ... } einen Codeblock mitgeben, der mich am Ende über eine Abschaltung informiert, bei dem Toplevel-Fenster fällt mir aber keine Möglichkeit ein und die geeignete Tk-Funktion kann ich nicht finden.
Danke für eventuelle Hilfe,
Molaf
Lesezeichen