# -*- mode: TCL; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*- # # $Id: DialogS.tcl,v 1.5 2004/03/28 02:44:57 hobbs Exp $ # # DialogS.tcl -- # # # Implements the DialogShell widget. It tells the window # manager that it is a dialog window and should be treated specially. # The exact treatment depends on the treatment of the window # manager # # Copyright (c) 1994-1996, Expert Interface Technologies # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # tixWidgetClass tixDialogShell { -superclass tixShell -classname TixDialogShell -method { popdown popup center } -flag { -mapped -minheight -minwidth -parent -transient } -static {} -configspec { {-mapped mapped Mapped 0} {-minwidth minWidth MinWidth 0} {-minheight minHeight MinHeight 0} {-transient transient Transient true} {-parent parent Parent ""} } } #---------------------------------------------------------------------- # Construct widget #---------------------------------------------------------------------- proc tixDialogShell:ConstructWidget {w} { upvar #0 $w data tixChainMethod $w ConstructWidget # Set the title of this shell appropriately # if {$data(-title) == ""} { # dynamically sets the title # set data(-title) [winfo name $w] } wm title $w $data(-title) # Set the parent of this dialog shell # if {$data(-parent) == ""} { set data(-parent) [winfo parent $w] } # Set the minsize and maxsize of the thing # wm minsize $w $data(-minwidth) $data(-minheight) wm transient $w "" } # The next procedures manage the dialog boxes # proc tixDialogShell:popup {w {parent ""}} { upvar #0 $w data # First update to make sure the boxes are the right size # update idletask # Then we set the position and update # # tixDialogShell:center $w $parent # and now make it visible. Viola! Centered over parent. # wm deiconify $w after idle raise $w } # This procedure centers a dialog box over a window making sure that the # dialog box doesn't appear off the screen # # However, if the parent is smaller than this dialog, make this dialog # appear at parent(x,y) + (20,20) # proc tixDialogShell:center {w {parent ""}} { upvar #0 $w data # Tell the WM that we'll do this ourselves. wm sizefrom $w user wm positionfrom $w user if {$parent == ""} { set parent $data(-parent) } if {$parent == "" || [catch {set parent [winfo toplevel $parent]}]} { set parent "." } # Where is my parent and what are it's dimensions # if {$parent != ""} { set pargeo [split [wm geometry $parent] "+x"] set parentW [lindex $pargeo 0] set parentH [lindex $pargeo 1] set parx [lindex $pargeo 2] set pary [lindex $pargeo 3] if {[string is true -strict $data(-transient)]} { wm transient $w $parent } } else { set parentW [winfo screenwidth $w] set parentH [winfo screenheight $w] set parx 0 set pary 0 set parent [winfo parent $w] } # What are is the offset of the virtual window set vrootx [winfo vrootx $parent] set vrooty [winfo vrooty $parent] # What are my dimensions ? set dialogW [winfo reqwidth $w] set dialogH [winfo reqheight $w] if {$dialogW < $parentW-30 || $dialogW < $parentH-30} { set dialogx [expr {$parx+($parentW-$dialogW)/2+$vrootx}] set dialogy [expr {$pary+($parentH-$dialogH)/2+$vrooty}] } else { # This dialog is too big. Place it at (parentx, parenty) + (20,20) # set dialogx [expr {$parx+20+$vrootx}] set dialogy [expr {$pary+20+$vrooty}] } set maxx [expr {[winfo screenwidth $parent] - $dialogW}] set maxy [expr {[winfo screenheight $parent] - $dialogH}] # Make sure it doesn't go off screen # if {$dialogx < 0} { set dialogx 0 } else { if {$dialogx > $maxx} { set dialogx $maxx } } if {$dialogy < 0} { set dialogy 0 } else { if {$dialogy > $maxy} { set dialogy $maxy } } # set my new position (and dimensions) # if {[wm geometry $w] == "1x1+0+0"} { wm geometry $w ${dialogW}x${dialogH}+${dialogx}+${dialogy} } } proc tixDialogShell:popdown {w args} { wm withdraw $w }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
bitmaps | Folder | 0755 |
|
|
html | Folder | 0755 |
|
|
pref | Folder | 0755 |
|
|
Balloon.tcl | File | 12.97 KB | 0644 |
|
BtnBox.tcl | File | 2.61 KB | 0644 |
|
CObjView.tcl | File | 7.56 KB | 0644 |
|
ChkList.tcl | File | 4.97 KB | 0644 |
|
ComboBox.tcl | File | 35.42 KB | 0644 |
|
Compat.tcl | File | 870 B | 0644 |
|
Console.tcl | File | 14.95 KB | 0644 |
|
Control.tcl | File | 12.11 KB | 0644 |
|
DefSchm.tcl | File | 2.94 KB | 0644 |
|
DialogS.tcl | File | 4.2 KB | 0644 |
|
DirBox.tcl | File | 5.3 KB | 0644 |
|
DirDlg.tcl | File | 2.15 KB | 0644 |
|
DirList.tcl | File | 6.9 KB | 0644 |
|
DirTree.tcl | File | 8.76 KB | 0644 |
|
DragDrop.tcl | File | 3.93 KB | 0644 |
|
DtlList.tcl | File | 1002 B | 0644 |
|
EFileBox.tcl | File | 11.12 KB | 0644 |
|
EFileDlg.tcl | File | 1.68 KB | 0644 |
|
Event.tcl | File | 5.11 KB | 0644 |
|
FileBox.tcl | File | 14 KB | 0644 |
|
FileCbx.tcl | File | 2.42 KB | 0644 |
|
FileDlg.tcl | File | 2.13 KB | 0644 |
|
FileEnt.tcl | File | 7.15 KB | 0644 |
|
FloatEnt.tcl | File | 3.1 KB | 0644 |
|
Grid.tcl | File | 21.16 KB | 0644 |
|
HList.tcl | File | 17.72 KB | 0644 |
|
HListDD.tcl | File | 4.39 KB | 0644 |
|
IconView.tcl | File | 5.97 KB | 0644 |
|
Init.tcl | File | 6.05 KB | 0644 |
|
LabEntry.tcl | File | 2.09 KB | 0644 |
|
LabFrame.tcl | File | 1.15 KB | 0644 |
|
LabWidg.tcl | File | 3.86 KB | 0644 |
|
ListNBk.tcl | File | 3.5 KB | 0644 |
|
Meter.tcl | File | 3.04 KB | 0644 |
|
MultView.tcl | File | 3.62 KB | 0644 |
|
NoteBook.tcl | File | 6.02 KB | 0644 |
|
OldUtil.tcl | File | 2.98 KB | 0644 |
|
OptMenu.tcl | File | 9.17 KB | 0644 |
|
PanedWin.tcl | File | 27.68 KB | 0644 |
|
PopMenu.tcl | File | 5.37 KB | 0644 |
|
Primitiv.tcl | File | 10.28 KB | 0644 |
|
README.txt | File | 987 B | 0644 |
|
ResizeH.tcl | File | 12.94 KB | 0644 |
|
SGrid.tcl | File | 5.8 KB | 0644 |
|
SHList.tcl | File | 3.7 KB | 0644 |
|
SListBox.tcl | File | 6.97 KB | 0644 |
|
STList.tcl | File | 2.37 KB | 0644 |
|
SText.tcl | File | 3.09 KB | 0644 |
|
SWidget.tcl | File | 9.52 KB | 0644 |
|
SWindow.tcl | File | 6.75 KB | 0644 |
|
Select.tcl | File | 7.04 KB | 0644 |
|
Shell.tcl | File | 1.06 KB | 0644 |
|
SimpDlg.tcl | File | 1.13 KB | 0644 |
|
StackWin.tcl | File | 1.95 KB | 0644 |
|
StatBar.tcl | File | 1.31 KB | 0644 |
|
StdBBox.tcl | File | 1.62 KB | 0644 |
|
StdShell.tcl | File | 1.15 KB | 0644 |
|
TList.tcl | File | 17.59 KB | 0644 |
|
Tix.tcl | File | 9.51 KB | 0644 |
|
Tree.tcl | File | 4.57 KB | 0644 |
|
Utils.tcl | File | 10.54 KB | 0644 |
|
VResize.tcl | File | 4.95 KB | 0644 |
|
VStack.tcl | File | 9.42 KB | 0644 |
|
VTree.tcl | File | 4.31 KB | 0644 |
|
Variable.tcl | File | 2.5 KB | 0644 |
|
WInfo.tcl | File | 965 B | 0644 |
|
fs.tcl | File | 3.9 KB | 0644 |
|
libTix.so | File | 320.71 KB | 0755 |
|
license.terms | File | 2.76 KB | 0644 |
|
pkgIndex.tcl | File | 122 B | 0644 |
|