in reply to DialogBox vs. XDialogBox
BUT, you may be better off addressing the underlying problem, and just use a toplevel window, and do a grabGlobal on it. That is all the dialogbox does( besides adding a few buttons. That way you can make custom colors, positions, etc. Once you make it once, you can reuse it over and over. When you are done getting the information from the toplevel, do a grabRelease to return control to the main program.
#!/usr/bin/perl use warnings; use strict; use Tk; my $tl; my $mw = MainWindow->new; $mw->title( "MainWindow" ); $mw->Button( -text => "Toplevel", -command => \&do_Toplevel )->pack(); MainLoop; sub do_Toplevel { if ( !Exists( $tl ) ) { $tl = $mw->Toplevel(); $tl->geometry('300x100+100+100'); $tl->title( "Toplevel" ); #put all your widgets here $tl->Button( -text => "Close", -command => sub { $tl->grabRelease; $tl->withdraw } )->pack; } else { $tl->deiconify(); $tl->raise(); $tl->grabGlobal; } } ##############################################################
|
|---|