Re: widget::dialog
[email protected] (Jeff Hobbs) Thu, 25 Oct 2012 13:48:58 -0700
| Newsgroups | perl.tcltk |
|---|---|
| Message-ID | <[email protected]> |
Hi Gary, If you take the example below, you can modify it like so (assuming "No" should be the default): set nobtn [$dlg add button -text "No" …] $dlg configure -focus $nobtn bind $dlg <Return> [list $nobtn invoke] and that will get what you want. Jeff On 2012-10-25, at 12:42 PM, gary sachs <[email protected]> wrote: > Roger that, I have been able to specify custom buttons. > > I'm sorry I may not have stated this correctly... > > With tk__dialog I can specify what buttons I want by passing in a list of strings, cool! > But along with that I can also indicate that I want button x to be the default so that when I > hit <Return> when the dialog box is active, button x is invoked. Unfortunately, the tk__dialog does not used themed widgets, hence my desire to use widget::dialog. I tried to figure out setting the themes for tk__dialog, but I was missing something in the documentation and I also had trouble finding the style/theme associated with buttons used by tk__dialog. > > So, with widget::dialog themed and easy enough to work with I was looking to find out whether in a future releases if it would be possible to indicate which button, whether custom or not, could be indicated as the default, thus allowing a user to just press <Return> and then that button would be invoked. > > I hope I got it right this time... and if I am crossing paths, my apologies. > > gary > > > From: Jeff Hobbs <[email protected]> > To: gary sachs <[email protected]> > Cc: Tcl/ Tk Mailing List <[email protected]> > Sent: Thursday, October 25, 2012 1:18 PM > Subject: Re: widget::dialog > > You could make an extended megawidget which would add the button, or > just encapsulate that in a simple subroutine. Did you know that it > has a '-type' option that will add a default set of button(s)? > > There is a sample in the code that show you how to use this in a sync > manner (in Tcl, but easily translatable): > > # Using -synchronous with a -type custom dialog requires that the > # custom buttons call [$dlg close $reason] to trigger the close > set dlg [widget::dialog .pkgerr -title "Yes/No Dialog" -separator 1 \ > -parent . -type custom] > set frame [frame $dlg.f] > label $frame.lbl -text "Type Something In:" > entry $frame.ent > grid $frame.lbl $frame.ent -sticky ew > grid columnconfigure $frame 1 -weight 1 > $dlg setwidget $frame > $dlg add button -text "Yes" -command [list $dlg close yes] > $dlg add button -text "No" -command [list $dlg close no] > puts [$dlg display] > > Jeff > > On Thu, Oct 25, 2012 at 4:06 AM, gary sachs <[email protected]> wrote: > > Jeff, > > > > any chance that widget::dialog could be enhanced to include the > > specification of a default button? > > Is there anyway to specify the "blocking synchronization" of a dialog box in > > a top-level widget? > > > > Thanks again. > > > > gary > > > > ________________________________ > > From: Jeff Hobbs <[email protected]> > > To: gary sachs <[email protected]> > > Cc: 'Tcl/ Tk Mailing List' <[email protected]> > > Sent: Wednesday, October 24, 2012 11:43 PM > > Subject: Re: widget::dialog > > > > On 2012-10-23, at 4:20 AM, gary sachs <[email protected]> wrote: > >> Looking at the various option of using a dialog widget from PERL via Tkx, > >> widget::dialog was my best choice because it is themed. But I was curious > >> > >> as to why it does not allow for specifying a default button like the other > >> dialog widgets, i.e. - tk__dialog. > > > > widget::dialog tries to act like a proper dialog shell with some widget-like > > interaction and a lot of flexibility. tk_dialog is a more limited dialog > > shell only (taking just a message and names of buttons). Indeed, that's > > been replaced by the core tk_messageBox which is similarly restrictive > > because it delegates out to the native OS message box. > > > > Jeff > > > >